你可以锁定会更改数据库中太多行的更新吗?
问题描述:
有没有在mysql中实现规则的方法,它会阻止更新影响10行以上?你可以锁定会更改数据库中太多行的更新吗?
举例来说,可以说我有TBL1有50,000行,我做
update tbl1 set tb1.name = 'bob'
然后迅速跟进在与“哦,不!我忘了在哪里!?!?”。
我想问的原因是因为初级开发者犯了这个错误,现在它的维修时间:(。
答
您可以防止更新(和删除)查询,而不在那里与此查询
set sql_safe_updates=1;
条款看看在这个环节
http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html#option_mysql_safe-updates
I-AM-一个假人是你的同事正确的开关。 :)
答
使用LIMIT
例
update tbl1 set tb1.name = 'bob' LIMIT 0,10
这将仅更新前10行;
答
首先想到的是使用事务来检查受影响的行并在受影响的行太过人时使用ROLLBACK y或大于您设置的某个变量/限制。据我所知,你无法获得直接更新的行数。另一种选择是使用LIMIT,如果它是您正在更新的单个表。第三个解决方案是使用一个测试数据库和拍打着初级开发者可以用来遗忘的“WHERE” :)
非常感谢:) – 2011-03-22 11:34:50
很高兴能有所帮助;) – 2011-03-22 11:37:59