2012-03-10 103 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