Mysql触发器语法(如果不存在)
我们有两张桌子(俱乐部、乡村) 教授给我们举了这样的例子Mysql触发器语法(如果不存在),mysql,sybase,Mysql,Sybase,我们有两张桌子(俱乐部、乡村) 教授给我们举了这样的例子 CREATE TRIGGER tg_add_club AFTER INSERT ON Club REFERENCING NEW AS uus FOR EACH ROW BEGIN IF (NOT EXISTS ( ) THEN ) END IF; UPDATE Club END; 我不懂语法。我试着用这个例子 CREATE TRIGGER tg_add_cl
CREATE TRIGGER tg_add_club
AFTER INSERT ON Club
REFERENCING NEW AS uus
FOR EACH ROW
BEGIN
IF (NOT EXISTS (
)
THEN
)
END IF;
UPDATE Club
END;
我不懂语法。我试着用这个例子
CREATE TRIGGER tg_add_club
AFTER INSERT ON Club
REFERENCING NEW AS uus
FOR EACH ROW
BEGIN
IF uus.Club.Location (NOT EXISTS ( Village.name
)
THEN INSERT INTO Village (name) VALUES (uus.Club.location)
)
END IF;
UPDATE Club SET (Village.name = uus.Location)
END;
显然它不起作用,它看起来更像一个伪代码…但它应该给出一个想法。如何修复我的代码
如果有什么不清楚的地方,那么我将尝试添加更多信息,因为psuedo代码与否都是胡说八道,很难猜测您想要什么 一些更正
CREATE TRIGGER tg_add_club
AFTER INSERT ON Club
FOR EACH ROW
BEGIN
IF NOT EXISTS (select 1 from Village where name = new.location THEN
INSERT INTO Village (name) VALUES (new.location)
else
#UPDATE Club SET (Village.name = uus.Location)
end if;
END
注意-这是mysql语法,没有引用子句,您无法更新CLUB,您可能需要设置分隔符“引用新的作为UU”不是mysql语法。如果您使用的是mysql,请删除此选项,并将其他UU更改为新的,存在性检查需要一个selectWhat错误?你想要实现什么?你是使用MySQL还是Sybase?我真的怀疑它们是否使用相同的语法。如果您使用的是Sybase,您使用的是哪个Sybase RDBMS(ASE?IQ?SQLAnywhere?Advantage?)版本?正如其他人所提到的,您需要告诉我们您正在使用什么RDBMS产品,因为每个产品都有自己的SQL语言风格(即,并非所有实现的SQL语言都是相同的)
CREATE TRIGGER tg_add_club
AFTER INSERT ON Club
FOR EACH ROW
BEGIN
IF NOT EXISTS (select 1 from Village where name = new.location THEN
INSERT INTO Village (name) VALUES (new.location)
else
#UPDATE Club SET (Village.name = uus.Location)
end if;
END