gpt4 book ai didi

mysql - 我无法在 mysql 上运行触发器

转载 作者:行者123 更新时间:2023-11-28 23:57:25 25 4
gpt4 key购买 nike

我在 mySQL 上有这些表(我全部写在命令行上)

TITOLO(isin varchar(12), maxAss int, minAss int, primary key(isin))

QUOTAZIONE(id int, min int, max int, date date, isin varchar(12), primary key(id), foreign key(isin) references TITOLO(isin))

现在我想创建一个触发器,每次我在 QUOTAZIONE 中插入一行时它检查是否 min < minASS or max > maxAss如果为真,则更新表中的值 TITOLO .

DELIMITER $$
CREATE TRIGGER AggiornaTitolo
AFTER INSERT ON quotazione
FOR EACH ROW BEGIN
DECLARE massimo int;
DECLARE minimo int;
SELECT maxAss, minAss INTO massimo, minimo FROM titolo WHERE titolo.isin = NEW.isin;
IF massimo > maxAss THEN
UPDATE titolo
SET maxAss = massimo;
IF minimo < minAss THEN
UPDATE titolo
SET minAss = minimo;
END IF;
END;
$$ DELIMITER ;

但是控制台写error 1064 (42000) at line 14.有人可以帮帮我吗?

最佳答案

作为McAdams331 already pointed out你错过了第二个ENDIF:

00000001 DELIMITER $$
00000002 CREATE TRIGGER AggiornaTitolo
00000003 AFTER INSERT ON quotazione
00000004 FOR EACH ROW BEGIN
00000005 DECLARE massimo int;
00000006 DECLARE minimo int;
00000007 SELECT maxAss, minAss INTO massimo, minimo FROM titolo WHERE titolo.isin = NEW.isin;
00000008 IF massimo > maxAss THEN
00000009 UPDATE titolo
00000010 SET maxAss = massimo;
00000011 IF minimo < minAss THEN
00000012 UPDATE titolo
00000013 SET minAss = minimo;
00000014 END IF;
<missing> END IF;
00000015 END;
00000016 $$ DELIMITER ;

关于mysql - 我无法在 mysql 上运行触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31250120/

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