2011-02-27 24 views
0

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

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

我试图用TRIGER要做到这一点,比如我检查之前删除ID值,如果ID == 0,则ID = 4444444 ......,在这种情况下没有记录会删除,因为我设置了一个不存在的行ID的ID。但是这种方法不起作用;

+0

为什么要硬编码ID值。与ID打不好 – 2011-02-27 08:47:45

+0

@Shekhar_Pro:你有什么建议吗? – 2011-02-27 08:49:53

+0

请不要问同样的问题两次。这是http://stackoverflow.com/questions/5132356/how-to-reject-delete-statement-in-before-delete-triger-mysql/5132594#5132594的精确副本 – 2011-02-27 10:32:09

回答

2

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

现在,如果有人试图在“父”表将在其他表由于无法为现有的子行与ID = 0删除的行。

使用这个模式,你可以“保护”在父表中的任何ID被删除。