有没有办法在mysql中实现一个规则,阻止更新影响超过10行?
例如,假设我有tbl1有50,000行,我做
update tbl1 set tb1.name = 'bob'
然后快速继续“OH NO!我忘了那里!?!?”。
我问的原因是因为初级开发人员犯了这个错误,现在是修理时间:(。
答案 0 :(得分:2)
您可以在没有此查询的where子句的情况下阻止更新(和删除)查询
set sql_safe_updates=1;
看一下这个链接
http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html#option_mysql_safe-updates
i-am-a-dummy是您同事的正确开关。 :)
答案 1 :(得分:0)
使用LIMIT
实施例
update tbl1 set tb1.name = 'bob' LIMIT 0,10
这只会更新前10行;
答案 2 :(得分:0)
首先要考虑的是使用事务检查受影响的行,如果受影响的行太多或大于您设置的某个变量/限制,则使用ROLLBACK。据我所知,您无法获得将直接更新的行数。另一个选项是使用LIMIT,如果它是您正在更新的单个表。第三种解决方案是使用测试数据库,并让初级开发人员忘记“WHERE”:)