我有以下問題填充另一個表中的兩個表:使用觸發器
我現在有3個表:
Person(personID, firstName, lastName, ...)
Household(householdID, personID, sons, daughters, ...)
Info(infoID, firstName, lastName, sons, daughters, ...)
的信息表,其中所有的數據,目前,雖然人和家庭是空的,我想通過將個人數據放入個人表中,並將他們的家庭數據放入家庭表中來分發數據。 Household.personID是Person.personID的外鍵。
我試圖通過在家庭中每次插入一行來做到這一點,並且在每行之後,我會將人員數據插入到人員表格中(這將爲該人員分配一個唯一的personID),然後返回並插入將新的personID添加到家庭表中。
環顧四周後,我發現我應該使用事務或通過創建觸發器(或兩者?)。我不知道很多關於要麼但是這是我從我讀創建:
CREATE TRIGGER PersonTrigger AFTER INSERT ON Person
FOR EACH ROW BEGIN
INSERT INTO Household
(personID, sons, daughters, ...")
VALUES (LAST_UPDATE_ID(), (SELECT sons, daughters, ...
FROM Info)
END;
INSERT INTO Person (firstName, lastName, ...)"
SELECT firstName, lastName, ...
FROM Info
但嘗試運行這個時候我收到的SQLException錯誤
SQLException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EACH ROW BEGIN INSERT INTO TestHousehold(personID, givenName, lastName' at line 1
任何有識之士來爲什麼這可能會發生,將不勝感激。提前致謝。
你能發佈整個觸發代碼嗎? – 2015-02-24 01:29:56
'我試圖通過每次插入一行來做到這一點'你將數據插入到houhold表中......所以,在觸發前使用並且觸發它,否則家庭將數據插入到人表中get * * maxid **然後將其插入家用餐桌。 – 2015-02-24 02:28:42
@MatteoRubini在閱讀之前和之後,我從來沒有使用觸發器,我發現我需要在觸發器代碼後面設置一個'DELIMITER'並且有一個'END'。這是你發佈我的整個觸發器代碼的意思,還是有更多我失蹤? – mkk 2015-02-24 07:32:39