2014-10-08 76 views
0

我剛剛在我的辦公室看到了這一點,您可以使用連接進行更新?我的問題是你也可以使用Codeigniter的活動記錄來做到這一點嗎?給出以下SQL查詢:在CI活動記錄中加入了更新/插入

UPDATE tbl1 JOIN tbl2 ON tbl1.id = tbl2.tbl1_id 
SET tbl1.column2 = "value1", tbl2.column3 = "value1" 
WHERE tbl1.column1 = 1; 

最後,是否有任何特定版本的MySQL,我需要使用我執行此?謝謝!

回答

0

版本> 3.23的MySQL支持連接表UPDATE語句。你可以用CI來做:

$this->db->set('tbl1.column2', 'value1'); 
$this->db->set('tbl2.column3', 'value2'); 
$this->db->where('tbl1.column1', 1); 
$this->db->update('tbl1 JOIN tbl2 ON tbl1.id = tbl2.tbl1_id'); 
+0

我可以使用$ this-> db-> trans_start();如果這樣,如果從另一個表更新失敗?或者沒有必要? – loki9 2014-10-08 03:12:16

+0

連接表上的更新是一個原子操作。無需交易 – anhlc 2014-10-08 03:24:03

+0

謝謝!我會在更新時更頻繁地嘗試此操作 – loki9 2014-10-08 03:28:56