2015-02-11 74 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