2012-03-10 109 views
5

是否可以一次插入兩張表?我需要在表中插入一些數據(聯繫信息),然後根據主鍵插入到用戶表中,並將主鍵設置爲字段(外鍵)。這可能嗎?插入兩張表

感謝

+0

您可能需要依次對兩個表執行插入操作。 – Lion 2012-03-10 13:14:45

回答

2

您可以爲此編寫一個過程。

DELIMITER // 

CREATE PROCEDURE `proc1` (contactinformation colums... usertable columns...) 
BEGIN 
    INSERT INTO contactinformation values(contactinformation colums ...); 
    INSERT INTO usertable values(LAST_INSERT_ID(), contactinformation colums ...); 
END// 

DELIMITER ; 

contactinformation colums...表示聯繫人信息表的列定義。
usertable columns...表示usertable表的列定義。

第一次插入後,如果contactinformation表中有任何自動列,您可以獲得插入ID。然後在第二個插入語句中使用該鍵。

+0

這是一個存儲過程還是觸發器? – Biscuit128 2012-03-10 13:36:15

+0

其存儲過程。看看有'CREATE PROCEDURE'。你能給我們提供'usertable'和'contactinformation'的模式嗎?然後,我會更好地理解,並相應地改變我的程序 – 2012-03-10 13:39:15

0

您可以在table1創建一個觸發器上插入table2相同的值。

2

你可以插入到一個更新或插入的觀點,可以參考兩個不同的表與JOIN,看看文檔here