2015-02-11 71 views
0

情况:Table1CONSTRAINT FOREIGN KEYTable2命名为Table2Id的foreach行插入到另一个表和更新列

如何Table1与新插入的行从Table2(每个Table1行更新Table2Id列的每一行都会有自己Table2记录)?

+0

只要rowid存在于Table2中,简单的更新语句应该适用于Table1。在从Table2获取新插入的rowID时遇到问题吗? – SoulTrain 2015-02-11 16:47:18

+0

它应该为'Table1'中的每行插入数据到'Table2',并且同时将'INSERTED.Id'分配给'Table1'中的相应列 – eCorke 2015-02-11 16:55:43

回答

0

我已经使用类似下面的代码在MS SQL-Server上执行此操作。我没有这个代码,但是在MySQL中实现了类似的触发器。

ALTER TRIGGER [dbo].[Addresses_afterInsert] 
    ON [dbo].[Addresses] 
    AFTER INSERT 
AS 
BEGIN 
    INSERT INTO [MultiKey] ([keyEntity], [nameEntity], [typeEntity]) 
    SELECT [keyAddress], [fullAddress], 'Address' AS [typeEntity] 
    FROM [Addresses] 
    WHERE ([keyMulti] IS NULL); 
    UPDATE [Addresses] 
    SET [keyMulti] = [MultiKey].[keyMulti] 
    FROM [Addresses] 
    INNER JOIN [MultiKey] 
    ON (
     ([MultiKey].[keyEntity] = [Addresses].[keyAddress]) 
     AND ([MultiKey].[typeEntity] = 'Address') 
    ); 
END