TRIGGER检查该删除是否删除了所有表值

时间:2019-12-11 14:09:51

标签: mysql sql database triggers

基本上,我只是不想DELETE FROM X删除所有行。

例如:

DELETE FROM X WHERE ID = 3 OR ID = 4;->允许,因为不尝试删除所有表。

DELETE FROM X;->不允许,因为它将删除所有表。

我该如何使用触发器?

1 个答案:

答案 0 :(得分:2)

如果没有delete子句,您实际上可能不需要触发器来阻止where

您可以通过设置以下内容来完成自己想做的事情:

SET SQL_SAFE_UPDATES = 1;

此文档为here

注意:这当然适用于所有表。如果您只想在一个表上使用此限制,则可以使用触发器。