2014-02-26 65 views
0

我有一些關於mysql處理程序來處理刪除和選擇查詢在同一時間的困惑。我需要知道刪除查詢是否在一個表上運行,同時select也在運行該表,甚至是同一行。mysql如何處理刪除並同時選擇查詢?

+0

也許你應該澄清是否你在談論兩個不同的報表,選擇和刪除,同時運行或約使用子查詢DELETE語句(SELECT)。 –

+0

是的我在同一時間談論2個不同的陳述 – Abhinav

回答

0

如果刪除說法是不交易的一部分,那麼發動機,大多數MySQL引擎,將鎖定相關的行,直到執行delete語句。

如果刪除語句是正在進行的事務的一部分,則訪問該記錄的能力由事務隔離級別決定。

事務隔離級別確定在提交事務之前其他會話是否可以訪問受事務語句影響的數據(在您的情況下刪除) 如果隔離級別是讀取已提交且事務尚未提交,那麼事務塊外的任何select語句將檢索舊數據,並在事務提交後,select將檢索新數據。

有關隔離級別的更多詳細信息,您可以檢查此 http://dev.mysql.com/doc/refman/5.1/en/set-transaction.html