如何防止删除MySQL 5.1中特定表的任何行?
我不需要任何where条件,我只是不希望删除这些表中的任何行。
必须在MySQL级别上完成,因为我们还使用已接受删除的已购买软件。我们使用MySQL 5.1.66-cll
我试图为此调整不同的触发器,但我无法成功。
答案 0 :(得分:2)
正如其他人在评论中所提到的,正确的方法是通过表级授权。
但是,可以根据您的要求使用触发器来完成。
执行此操作的一种方法是使用“before delete”触发器,并执行始终导致错误的简单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 ;