[SQL ] 批次更新失敗問題

看板Database作者 (單身漢)時間9年前 (2015/07/02 08:32), 9年前編輯推噓3(308)
留言11則, 3人參與, 最新討論串1/1
資料庫名稱: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

07/03 19:54, , 1F
我覺得應該有可能發生
07/03 19:54, 1F

07/04 09:30, , 2F
Commit機制問題,ACID, 真發生這種事資料庫可以丟了。
07/04 09:30, 2F

07/04 09:32, , 3F
把一個批次執行完再commit就好了。
07/04 09:32, 3F

07/04 09:57, , 4F
Tranaction 會影響 執行的效率
07/04 09:57, 4F

07/04 09:57, , 5F
在不使用Transaction的情況, 是否會有失敗的情況
07/04 09:57, 5F

07/04 11:09, , 6F
會,但不用transaction的話你"必須"要有機制避免這
07/04 11:09, 6F

07/04 11:09, , 7F
問題,不管他會不會發生。
07/04 11:09, 7F

07/04 11:12, , 8F
直接用更新到一半異常斷電去想好了,更新到一半異常斷電,
07/04 11:12, 8F

07/04 11:13, , 9F
你的資料不就有問題了?
07/04 11:13, 9F

07/04 11:13, , 10F
資料要的是可靠切不屈服於執行效率,用 transaction 也不
07/04 11:13, 10F

07/04 11:13, , 11F
應該有效率問題。
07/04 11:13, 11F
文章代碼(AID): #1Lb8Qdgk (Database)