如何防止删除MySql中的默认行?
假设我有 0 id的记录,用户无法插入任何具有0 id值的记录,在某些情况下我使用默认行值来显示默认设置。现在我想阻止用户在数据库级别中删除此行。
我尝试使用 triger 来执行此操作,例如我在删除 id 值之前签入,如果id == 0,则id = 4444444 .. 。,在这种情况下,不会删除任何记录,因为我使用非存在的行ID设置id。但是这种方法不起作用;
答案 0 :(得分:2)
您可以创建一个使用引用ID列的外键约束的表(前提是它是表的主键)。然后在引用ID = 0的“子”表中插入一行,并从该子表中删除用户的所有更新/删除权限。
现在,如果有人试图删除“父”表中ID = 0的行,该行将因另一个表中的现有子行而失败。
使用此模式,您可以“保护”父表中的任何ID不被删除。