如何防止删除 MySQL 5.1 中特定表的任何行?
我不需要任何 where 条件,我只是不想删除这些表中的任何行。
必须在 MySQL 级别完成,因为我们也使用购买的接受删除的软件。我们使用 MySQL 5.1.66-cll
我试图为此调整不同的触发器,但我无法成功。
如何防止删除 MySQL 5.1 中特定表的任何行?
我不需要任何 where 条件,我只是不想删除这些表中的任何行。
必须在 MySQL 级别完成,因为我们也使用购买的接受删除的软件。我们使用 MySQL 5.1.66-cll
我试图为此调整不同的触发器,但我无法成功。
正如其他人在评论中提到的那样,执行此操作的正确方法通常是通过表级授权。
但是,可以根据您的要求使用触发器来完成。
一种方法是使用“删除前”触发器,并执行一个总是会导致错误的简单 SQL 语句。例如,您可以调用不存在的存储过程,如“do_not_delete”。
尝试这样的事情:
delimiter $$
drop trigger if exists tr_your_table_no_deletes $$
create trigger tr_your_table_no_deletes before delete on your_table for each row begin
call do_not_delete();
end $$
delimiter ;