我需要在表格中插入一些数据'公司'列: company_id | COMPANY_NAME
并同时(从同一表格)到另一个表格' contact_persons' : contact_name | COMPANY_ID
其中company_id必须是'公司'的价值。 table其中company_id是PK和AI。 是否可以在一个步骤中执行此操作,而不是先插入company_name,然后阅读表格'公司'并检索' company_id'将其插入第二个表格(' contact_persons')?
我不确定这是否可行,但它会更加优雅和高效...... 提前谢谢。
答案 0 :(得分:3)
您可以使用LAST_INSERT_ID()
来获取Companies
表中的最后一个自动增量ID,并将其插入到其他表中。
INSERT INTO companies (company_name) VALUES ('test');
SET @last_id_companies = LAST_INSERT_ID();
INSERT INTO contact_persons (contact_name, company_id)
VALUES ('test', @last_id_companies);
答案 1 :(得分:0)
不是在单个语句中,而是在单个事务中,因此它们同时执行并回滚。
START TRANSACTION;
--Your statements here
COMMIT;