※ 引述《tas72732002 (蔥頭)》之銘言:
: 請問一下, 使用PDO transaction後如何lock select insert update語句的table
: 上網查詢發現使用C# 的SqlDataReader.ExecuteNonQuery()對資料庫進行資料更新時,
: transaction後需insert一筆資料才能lock select語句的 table,
: 如果此時要對slelect語句的table進行鎖定, 必須還要透過Isolation Level來控制交易的隔離層級才可達到lock,
: 想請問 PHP PDO的transaction是否也要透過這個機制, 還是他預設就可以lock select語句的table,不用等到insert
: 一筆資料才能lock select語句的table
這看資料庫如何設計,不是 PDO 的問題。
如果是 MySQL InnoDB,需要用 SELECT ... FOR UPDATE 或是 SELECT ... LOCK IN
SHARE MODE 告訴 MySQL 這筆 SELECT 會參與 transaction:
http://dev.mysql.com/doc/refman/5.5/en/innodb-locking-reads.html
不熟 Microsoft SQL Server,不過就 MSDN 上翻到的資料看起來也是在下 query 時
指定:
http://msdn.microsoft.com/en-us/library/aa213026(v=sql.80).aspx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.121.80.241