gpt4 book ai didi

mysql - 使用 LAST_INSERT_ID 插入

转载 作者:行者123 更新时间:2023-11-29 21:22:17 25 4
gpt4 key购买 nike

如何在递增和使用 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 ;

我知道,如果我在 B 中进行了多次插入,则 INSERT INTO B VALUES(LAST_INSERT_ID() + 1, 'A'); 不起作用,因为 LAST_INSERT_ID() 进行多行插入时,LAST_INSERT_ID() 将返回插入的第一行(而不是最后一行)的值。我将如何增加 ID 以便 LAST_INSERT_ID() 返回插入中的最新 ID`

最佳答案

如果您想插入来自 B 的 id,则使用 id 列:

CREATE TRIGGER T
AFTER INSERT ON B
FOR EACH ROW
BEGIN
IF (NEW.name LIKE 'A') THEN
INSERT INTO A VALUES(B.ID + 1, 'A');
END IF;
END//

这似乎是一个奇怪的表达方式。也许您的真正意图只是在两个表上都有一个自动递增的 id。

关于mysql - 使用 LAST_INSERT_ID 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35665224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com