UPDATE table SET something=another WHERE (always true)
事故中一个简单的愚蠢" "会轻易破坏数据库中的所有内容.它可能是人为错误,SQL注入/溢出/截断攻击,或构建WHERE原因的代码中的错误.
流行的数据库是否提供了一个保护表的功能,限制最大行数可以在一个SQL语句中更新?
我的意思是某种防御性设置适用于数据库上的表前访问权限:无法绕过,编程代码少,没有人为错误(除非授予自己太多访问权限).
您可以添加一个触发器来检查正在更新的行数(计算插入的魔术触发器表),如果行太多,则添加RAISEERROR.