2011-03-22 81 views
0

有沒有在mysql中實現規則的方法,它會阻止更新影響10行以上?你可以鎖定會更改數據庫中太多行的更新嗎?

舉例來說,可以說我有TBL1有50,000行,我做

update tbl1 set tb1.name = 'bob' 

然後迅速跟進在與「哦,不!我忘了在哪裏!?!?」。

我想問的原因是因爲初級開發者犯了這個錯誤,現在它的維修時間:(。

回答

0

使用LIMIT

update tbl1 set tb1.name = 'bob' LIMIT 0,10 

這將僅更新前10行;

0

首先想到的是使用事務來檢查受影響的行並在受影響的行太過人時使用ROLLBACK y或大於您設置的某個變量/限制。據我所知,你無法獲得直接更新的行數。另一種選擇是使用LIMIT,如果它是您正在更新的單個表。第三個解決方案是使用一個測試數據庫和拍打着初級開發者可以用來遺忘的「WHERE」 :)

+0

你的第一個解決方案是什麼? – Starx 2011-03-22 10:57:08

+0

開始交易,進行更新,檢查受影響的行。如果受影響的行> 30(或其他數字),則回滾。簡單。 – Furicane 2011-03-22 10:59:52

+0

有趣的是,如何回滾? – Starx 2011-03-22 11:04:26

相關問題