如何在增加和使用LAST_INSERT_ID時插入?我有一個表,並觸發這樣:使用LAST_INSERT_ID插入
CREATE TABLE A(
id int NOT NULL AUTO_INCREMENT,
name char(15),
PRIMARY KEY(id)
);
CREATE TABLE B(
id int NOT NULL,
name char(15),
FOREIGN KEY(id) REFERENCES A(id)
);
delimiter //
CREATE TRIGGER T
AFTER INSERT ON B
FOR EACH ROW
BEGIN
IF (NEW.name LIKE 'A') THEN
INSERT INTO A VALUES(LAST_INSERT_ID() + 1, 'A');
END IF;
END//
delimiter ;
我知道INSERT INTO B VALUES(LAST_INSERT_ID() + 1, 'A');
不會因爲LAST_INSERT_ID()
做多行插入的時候,如果我有多個插件分爲B工作,LAST_INSERT_ID()
將返回插入的第一行的值(而不是最後一個)。我怎麼會去遞增ID,以便LAST_INSERT_ID()
返回從inserts`最近的ID
有了這個,第一次插入我做(其中name ='A'),我得到一個主鍵重複項的錯誤。 – Justin
@Justin。 。 。我懷疑你想在'A'中自動增加一列。 –
是的ID在A中自動遞增,而B中的ID引用A中的ID – Justin