【发布时间】:2014-04-19 11:32:05
【问题描述】:
使用 SQLFiddle,PostgreSQL 9.3.1。
我正在学习在 PostgreSQL 中定义触发器,经过一些研究我发现了以下内容:
Postgres 中的触发器与 MYSQL 不同。在 Postgres 中你必须创建一个函数 RETURNS TRIGGER,在 MySQL 中你可以只创建一个触发器。所以这就是我想出的:
在员工插入时,我们要更新部门总工资。
CREATE FUNCTION update_sal() RETURNS TRIGGER AS $$
BEGIN
IF NEW.dno IS NOT NULL THEN
UPDATE Department SET Total_sal = total_sal + NEW.salary
WHERE department.dno = NEW.dno;
END IF;
RETURN NULL;
END;
$$ Language plpgsql;
CREATE TRIGGER updateInsert
AFTER INSERT ON Employee
FOR EACH ROW
EXECUTE PROCEDURE update_sal();
我收到以下错误:
Schema Creation Failed: ERROR: unterminated dollar-quoted string at or near "$$
BEGIN IF NEW.dno IS NOT NULL THEN UPDATE Department
SET Total_sal = total_sal +NEW.salary WHERE department.dno = NEW.dno":
【问题讨论】:
标签: postgresql jdbc triggers plpgsql