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

时间:2011-02-27 08:44:55

标签: mysql sql validation triggers constants

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

假设我有 0 id的记录,用户无法插入任何具有0 id值的记录,在某些情况下我使用默认行值来显示默认设置。现在我想阻止用户在数据库级别中删除此行。

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

1 个答案:

答案 0 :(得分:2)

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

现在,如果有人试图删除“父”表中ID = 0的行,该行将因另一个表中的现有子行而失败。

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