在Insert语句MySql中将表2中的自动递增ID插入表1
我在MySql中有一个存储过程,我试图在Person_表中插入值。 Person_表中的一列是CompanyID 但是我需要从Company\u表中检索CompanyID。CompanyID是一个自动递增的主键。两个表都有列在Insert语句MySql中将表2中的自动递增ID插入表1,mysql,insert,inner-join,mysql-workbench,Mysql,Insert,Inner Join,Mysql Workbench,我在MySql中有一个存储过程,我试图在Person_表中插入值。 Person_表中的一列是CompanyID 但是我需要从Company\u表中检索CompanyID。CompanyID是一个自动递增的主键。两个表都有列CompanyName。 我想在相同的过程中将Company+Table.CompanyID插入Person\u Table.CompanyID列 我在连接两个表时遇到问题能否在insert语句上内部联接表 这是我到目前为止所做的,但它不喜欢内部连接: ins
CompanyName
。
我想在相同的过程中将Company+Table.CompanyID
插入Person\u Table.CompanyID
列
我在连接两个表时遇到问题能否在insert语句上内部联接表
这是我到目前为止所做的,但它不喜欢内部连接:
insert into person p
(FarmName, FirstName, MiddleName, LastName, Phone, CompanyID)
values
( oFarmName, oFirstName, oMiddleName, oLastName, oPhone, oCompanyID)
inner join company c on p.FarmNamne = c.CompanyName
where p.FarmName = c.CompanyID;
我无法回答是否可以插入内部连接,但我的感觉是不可能的 无论如何,为了提供一点帮助,我建议您以不同的方式解决此问题: 在INSERT之后,在第一张表上设置触发器怎么样。此时,自动增量id是已知的,可以使用触发器轻松地插入表2中
如果我正确理解了您的问题,那么在重命名表和列以匹配您的信息后,这应该会起作用:
INSERT INTO Person_Table
(FarmName, FirstName, MiddleName, LastName, Phone, CompanyID)
VALUES
( oFarmName, oFirstName, oMiddleName, oLastName, oPhone, (
SELECT c.CompanyId FROM Person_Table p
INNER JOIN Company_Table c ON c.CompanyName = p.CompanyName)
)
这只有在没有重复的公司名称时才有效,但请试一试。谢谢。我正试图使用触发器。这是我第一次使用它们,所以我不知道确切的语法。这是我到目前为止所做的,但它不起作用
CREATE DEFINER=CURRENT\u USER TRIGGER Assign\u CompanyID在插入到每行的个人之前设置NEW.CompanyID=Company.CompanyID,其中individual.FarmName=CompanyName.CompanyName
这未经测试,但在插入到每行的个人之后尝试CREATE TRIGGER Assign\u CompanyID开始插入到_table_2 SET table_2_company_id=NEW.CompanyID,table_2_other_field=NEW.other_field;结束代码>