【发布时间】:2017-08-08 23:55:23
【问题描述】:
我遇到了错误:
错误:“触发器”处或附近的语法错误 第 18 行:创建或替换触发器 T1
错误:“触发器”处或附近的语法错误 SQL 状态:42601 字符:391
对于此代码:
CREATE OR REPLACE FUNCTION trigf1() RETURNS trigger AS
$$
BEGIN
IF EXISTS ( SELECT*
FROM Receipt JOIN Sells ON Receipt.license = Sells.license
WHERE iname = NEW.iname AND cid = NEW.cid AND rno = NEW.rno
)THEN
RETURN NEW;
ELSE
RAISE NOTICE 'This cafe does not sell the item: %s',new.iname;
RETURN NULL;
END IF;
END;
$$
LANGUAGE 'plpgsql';
CREATE OR REPLACE TRIGGER T1
BEFORE INSERT OR UPDATE
ON Buys
FOR EACH ROW
EXECUTE PROCEDURE trigf1();
知道是什么问题吗?
【问题讨论】:
-
从
CREATE TRIGGER行中删除OR REPLACE。 -
我从
CREATE TRIGGER和CREATE FUNCTION中删除了OR REPLACE,但仍然出现错误。 -
@ShiraAsulin 如果您仍然遇到错误,请粘贴新的错误消息 - 第二个命令中的语法无效,删除“OR REPLACE”部分后它应该可以工作
标签: sql postgresql triggers