有沒有在mysql中實現規則的方法,它會阻止更新影響10行以上?你可以鎖定會更改數據庫中太多行的更新嗎?
舉例來說,可以說我有TBL1有50,000行,我做
update tbl1 set tb1.name = 'bob'
然後迅速跟進在與「哦,不!我忘了在哪裏!?!?」。
我想問的原因是因爲初級開發者犯了這個錯誤,現在它的維修時間:(。
有沒有在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