-4
我很好奇,有沒有辦法讓查詢塊(等待),直到插入新行?阻止Mysql查詢,直到更新
我很好奇,有沒有辦法讓查詢塊(等待),直到插入新行?阻止Mysql查詢,直到更新
有兩種情況下,我可以看到令你提出這個問題:
大批量INSERT
語句,即:
INSERT INTO mytable (id, name, date) VALUES
(1, 'Tom', '2013-01-31'),
(2, 'Dick', '2013-02-28'),
(3, 'Harry', '2013-03-31'),
...
在這種情況下,MySQL的鎖定內部,所以你不必做任何事情。任何需要使用「mytable」的查詢都將被推遲到插入完成。
重複單INSERT
語句,即:
INSERT INTO mytable (id, name, date) VALUES (1, 'Tom', '2013-01-31');
INSERT INTO mytable (id, name, date) VALUES (2, 'Dick', '2013-02-28');
INSERT INTO mytable (id, name, date) VALUES (3, 'Harry', '2013-03-31');
...
在這種 case語句的唯一途徑之間的表解鎖才能正常「鎖定」表是使用transaction。 [注:myISAM不支持事務,你必須使用InnoDB或BDB表。即:
START TRANSACTION;
INSERT INTO mytable (id, name, date) VALUES (1, 'Tom', '2013-01-31');
INSERT INTO mytable (id, name, date) VALUES (2, 'Dick', '2013-02-28');
INSERT INTO mytable (id, name, date) VALUES (3, 'Harry', '2013-03-31');
...
COMMIT;
不太清楚你的意思。也許[這](http://dev.mysql.com/doc/refman/5.0/en/commit.html)會有幫助嗎?您可以保留更改,直到您準備**提交**爲止。我想這有點像塊... – War10ck
有什麼重點?爲什麼不在插入行後運行查詢?這將有助於瞭解這背後的原因:) –
這是我的理解,插入將鎖定讀取操作,直到他們完成。 – landons