[請益] MySql lock

看板PHP作者 (拾貳)時間12年前 (2013/06/03 21:49), 編輯推噓0(006)
留言6則, 3人參與, 最新討論串1/1
這好像應該在DB版問,不過我比較愛這裡啦 php:5.3 mysql 5.0 是這樣來著,我在交易模式底下先用PK查了一筆資料 確認這筆資料後再用這個PK去where ,並修改了一個欄位 這裡是code foreach($data AS $v){ $result = $this->foo($v); if($result['data']){ $result['data']['column_a'] = '我愛一條柴'; } //這邊再把資料update回去 } 然後就鎖住了,shit google了一下,似乎只要是用索引查的就會row lock 這樣不就變成我每查詢完就要commit,然後再塞,很不給力啊(支那用語) 因為我的回傳都是同一個方法 return return_msg (__FILE__, __LINE__,array('data' => $result['data']), $result['code'] ); [上面是同一行] $result['data']是查詢後的資料,$result['code']MySql錯誤代碼 所以我的commit都放在這個回傳裡,一旦$result['code']為真時會rollback 如果還要在程式裡寫commit,那不就多此一舉了,請問各位大神,此題有解嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.208.2 ※ 編輯: rocairforce 來自: 122.117.208.2 (06/03 21:50)

06/03 22:13, , 1F
似乎是用PK找的時候才會row lock
06/03 22:13, 1F

06/04 00:03, , 2F
前面看起來不像會死鎖,$this->foo()裡面寫法是?後面看不懂
06/04 00:03, 2F

06/04 00:08, , 3F
不會是select跟update用不同的連線吧?
06/04 00:08, 3F

06/04 01:11, , 4F
my.ini好像有解 明天上班再研究了
06/04 01:11, 4F

06/04 01:12, , 5F
foo只是用pk撈出一筆資料,是同一條連線
06/04 01:12, 5F

06/04 09:44, , 6F
google 一下 "交易隔離",重新調整查詢句吧。
06/04 09:44, 6F
文章代碼(AID): #1Hh9xl7V (PHP)
文章代碼(AID): #1Hh9xl7V (PHP)