Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止删除MySql中的默认行?_Mysql_Sql_Validation_Triggers_Constants - Fatal编程技术网

如何防止删除MySql中的默认行?

如何防止删除MySql中的默认行?,mysql,sql,validation,triggers,constants,Mysql,Sql,Validation,Triggers,Constants,如何防止删除MySql中的默认行 假设我有一条id为0的记录,用户不能插入任何id值为0的记录,在某些情况下,我使用默认行值来显示默认设置。现在我想阻止用户在数据库级别删除这一行 我尝试使用触发器来执行此操作,例如,我在删除id值之前签入,如果id==0,则id=444…,在这种情况下不会删除任何记录,因为我使用不存在的行id设置id。但此方法不起作用 您可以创建一个表,该表使用引用ID列的外键约束(前提是它是表的主键)。然后在引用ID=0的“子”表中插入一行,并从该子表中删除用户的所有更新/删

如何防止删除MySql中的默认行

假设我有一条id为0的记录,用户不能插入任何id值为0的记录,在某些情况下,我使用默认行值来显示默认设置。现在我想阻止用户在数据库级别删除这一行


我尝试使用触发器来执行此操作,例如,我在删除id值之前签入,如果id==0,则id=444…,在这种情况下不会删除任何记录,因为我使用不存在的行id设置id。但此方法不起作用

您可以创建一个表,该表使用引用ID列的外键约束(前提是它是表的主键)。然后在引用ID=0的“子”表中插入一行,并从该子表中删除用户的所有更新/删除权限

现在,如果有人试图删除“parent”表中ID=0的行,由于另一个表中存在子行,该行将失败


使用此模式,可以“保护”父表中的任何ID不被删除。

为什么要硬编码ID值。。玩弄身份证不是一件容易的事good@Shekhar_Pro当前位置你的建议是什么?请不要问同一个问题两次。这是一个精确的复制品