作者noapaov (單身漢)
看板Database
標題[SQL ] 批次更新失敗問題
時間Thu Jul 2 08:32:36 2015
資料庫名稱:MySQL
資料庫版本:5.X
內容/問題描述:
請問一下各位, SQL在執行多筆資料新增、刪除、修改更時候,
例如 UPDATE test SET is_use = 0 WHERE pid > 5;
INSERT INTO test (pid, is_use) VALUES (1, 1), (2, 1);
DELETE FROM test WHERE pid > 5;
有沒有可能沒有執行完全, 也就是說, 假設pid 目前有 1 ~ 10
在執行DELETE FROM test WHERE pid > 5 , 有沒有可能因系統的問題造成
只更新了 pid 6,7 而 8,9,10刪除失敗的情況?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.181.227
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1435797159.A.AAE.html
※ 編輯: noapaov (114.34.181.227), 07/02/2015 08:32:59
推 tas72732002: 我覺得應該有可能發生 07/03 19:54
推 wen001: Commit機制問題,ACID, 真發生這種事資料庫可以丟了。 07/04 09:30
推 wen001: 把一個批次執行完再commit就好了。 07/04 09:32
→ noapaov: Tranaction 會影響 執行的效率 07/04 09:57
→ noapaov: 在不使用Transaction的情況, 是否會有失敗的情況 07/04 09:57
→ wen001: 會,但不用transaction的話你"必須"要有機制避免這 07/04 11:09
→ wen001: 問題,不管他會不會發生。 07/04 11:09
→ wen001: 直接用更新到一半異常斷電去想好了,更新到一半異常斷電, 07/04 11:12
→ wen001: 你的資料不就有問題了? 07/04 11:13
→ wen001: 資料要的是可靠切不屈服於執行效率,用 transaction 也不 07/04 11:13
→ wen001: 應該有效率問題。 07/04 11:13