使用MySQL,我認爲有一種方法可以做到關係性,但也許我錯了。在表A中插入查詢的插入查詢
我有表A與用戶ID和表B與用戶ID,它的設置等刪除A.userID級聯和刪除B.userID。所以我有一個查詢(使用配置項),插入表A中的信息,我想用相同的用戶ID(PK,AI)在表B中插入一行。有時它會在B.userID行中插入值,有時它會是完全空值。
關於如何做到這一點的想法?
謝謝。
使用MySQL,我認爲有一種方法可以做到關係性,但也許我錯了。在表A中插入查詢的插入查詢
我有表A與用戶ID和表B與用戶ID,它的設置等刪除A.userID級聯和刪除B.userID。所以我有一個查詢(使用配置項),插入表A中的信息,我想用相同的用戶ID(PK,AI)在表B中插入一行。有時它會在B.userID行中插入值,有時它會是完全空值。
關於如何做到這一點的想法?
謝謝。
我真的需要看到實際的查詢,但我相信這就是你要找的。
當您在CodeIgniter中插入數據時,您可以像這樣獲取插入的主鍵。
$this->db->insert('A',$data); //insert into the table with 'userID' as PK, AI
$id_of_insert = $this->db->insert_id();
$data_for_b = array(
'field' => 'value',
...
'userID' => $id_of_insert //insert the captured PK from A and place in the FK field of B
);
$this->db->insert('B', $data_for_b);
最簡單的事情就是寫一個存儲過程來執行插入操作。這既可以在事務中插入也可以接受要添加到B和A中的數據的參數。然後,您的查詢將調用存儲過程而不是直接插入。
有,你應該在這個方法考慮幾件事情:
如果AUTO_INCREMENT是BIGINT它給出錯誤的價值觀。
如果您在插入內容和其他人插入內容之前讀取該值,您可能會得到錯誤的編號。我建議用不同的獨特的東西來閱讀價值。 (例如用戶註冊中的暱稱)。
謝謝,作品魅力。希望我知道insert_id函數! – user652650 2011-03-10 01:22:55
http://codeigniter.com/user_guide/是你的朋友。沒有諷刺意圖,對不起,如果你已經知道這一個。 – 2011-03-10 03:02:04