gpt4 book ai didi

mysql - 尝试通过触发器(插入时)插入多行会导致错误

转载 作者:行者123 更新时间:2023-11-29 09:44:25 24 4
gpt4 key购买 nike

尝试使用触发器在表中插入多行(插入时),但它仅适用于一行。我从表单中收到错误返回(没有具体内容,只是原始插入有错误)

1 行工作正常,但多次崩溃。这个语法有什么问题?

BEGIN
set @moonid = 1;
insert into quicknotedesc (custid,moonid) VALUES (New.id,(@moonid)),(New.id,(@moonid+1));
END

最佳答案

触发器正文的语法似乎有效。

几乎每个 SQL 客户端都有一种机制来检测错误条件并检索错误消息。该错误可能是由于尝试违反 quicknotedesccustid 列上的唯一约束,或违反某些其他约束。我们只是猜测。

考虑让客户端能够检索实际的错误消息。并考虑从另一个客户端(例如 MySQL 命令行客户端)测试触发器的行为。

<小时/>

再次回答提出的问题:

触发器正文的语法似乎有效。

演示:

CREATE TABLE quicknotedesc 
( custid BIGINT UNSIGNED NOT NULL
, moonid BIGINT UNSIGNED NOT NULL
, PRIMARY KEY (custid, moonid)
);

CREATE TABLE foo
( id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT
);
<小时/>
DELIMITER $$

CREATE TRIGGER foo_ai
AFTER INSERT ON foo
FOR EACH ROW
BEGIN
SET @moonid = 1;
INSERT INTO quicknotedesc (custid,moonid) VALUES (New.id,(@moonid)),(New.id,(@moonid+1));
END$$

DELIMITER ;
<小时/>
INSERT INTO foo (id) VALUES (NULL) ;

1 row(s) affected

SELECT * FROM quicknotedesc ;

custid moonid
------ ------
1 1
1 2

关于mysql - 尝试通过触发器(插入时)插入多行会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55952930/

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