如何在新的SQL触发器附近更正语法错误?

如何在新的SQL触发器附近更正语法错误?,sql,postgresql,triggers,plpgsql,Sql,Postgresql,Triggers,Plpgsql,我编写了一个调用calculateMarketPriceCars函数的简单触发器(它有四个int参数): 我仔细检查了所有的拼写,并在触发器之外手动调用了该函数——其他一切都正常工作。但当我尝试创建触发器(将上述命令提供给SQL)时,它会显示 括号内是否可以看不到新的?如何更正它?触发器由PostgreSQL中的两条语句组成:触发器函数的定义和创建触发器语句。不能在一条语句中同时使用这两种语句 不能用SQL编写触发器函数,必须使用PL/pgSQL或其他过程语言。用正在使用的数据库标记问题。触发器

我编写了一个调用
calculateMarketPriceCars
函数的简单触发器(它有四个int参数):

我仔细检查了所有的拼写,并在触发器之外手动调用了该函数——其他一切都正常工作。但当我尝试创建触发器(将上述命令提供给SQL)时,它会显示


括号内是否可以看不到新的?如何更正它?

触发器由PostgreSQL中的两条语句组成:触发器函数的定义和
创建触发器
语句。不能在一条语句中同时使用这两种语句


不能用SQL编写触发器函数,必须使用PL/pgSQL或其他过程语言。

用正在使用的数据库标记问题。触发器语法特定于数据库。已编辑。它是PostgreSQL 9.6.1。
create trigger
语句不能引用伪表
new
。触发功能可以。您需要向我们展示触发器函数的代码,并解释逻辑。我可以在这里使用一个简单的SQL函数,还是应该只使用触发器函数?您真正需要做的是阅读文档和。
CREATE TRIGGER calculateMarketPrTriggerCars
AFTER INSERT ON FOR_SALE_CARS
FOR EACH ROW
EXECUTE PROCEDURE calculateMarketPriceCars(NEW.BOUGHT_PRICE, NEW.YEAR_OF_PRODUCTION, (SELECT 
NUMBER_OF_CARS_PRODUCED FROM ABSTR_CARS WHERE ABSTR_CARS.ABSTR_CAR_ID = NEW.ABSTR_CAR_ID), 
NEW.MILEAGE);
ERROR:  syntax error at or near "."
LINE 4: EXECUTE PROCEDURE calculateMarketPriceCars(NEW.BOUGHT_PRICE,...