2011-02-27 171 views
0

如何拒绝删除语句在之前删除触发器(mysql)?如何在删除触发器之前拒绝删除语句?

示例使用案例:我有一个指定的id的记录,我想不会被删除。

+0

这是什么意思?提供一个用例。 – Nishant 2011-02-27 09:21:08

+0

@Nishant:我添加了示例用例。 – 2011-02-27 09:56:29

回答

2

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

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

+0

这是一个非常糟糕的想法(至少对我来说,因为我们的db中有超过130个表) – 2011-02-27 10:53:00

+0

@Behrouz:这是否意味着你需要为每个表提供这种“保护”?听起来像一个非常奇怪的设置然后.. – 2011-02-27 11:02:11

+0

不是为每个表,但我有很多表之间的关系,这种解决方案使它更复杂。我写了一个ORM,它生成SOAP Web服务,增加了一个额外的无用列,使Web服务变得丑陋和容易出错 – 2011-02-27 11:08:11