我一直在玩最后一个小时或更多试图将更新语句放入触发器。我明白UPDATE语句的概念,下面的工作只是正常Postgres - 更新语句作为触发器
UPDATE cars SET country = 'France';
我要的是投入到一个触发该这样,当汽车表被更新,列全国将自动与法国进行更新。
我已经尝试过调整我在interweb上发现的函数和触发器,但我显然声明错误,因为它们不执行或者它们执行但不更新国家/地区字段当添加新记录时。
CREATE FUNCTION update_country() RETURNS TRIGGER AS $$
BEGIN
IF (TG_OP = 'UPDATE') THEN
UPDATE cars SET country = 'France' WHERE id = New.id;
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql; --The trigger used to update a table.
CREATE TRIGGER update_country_col BEFORE UPDATE ON cars FOR EACH ROW EXECUTE PROCEDURE update_country();
上述脚本执行但未将法国添加到国家/地区列。 该功能是根据我在网络上发现的声明进行调整的。
Postgres 9.1。
我知道答案会非常简单!
请出示你的PostgreSQL的版本,你写的触发器的代码,相关的'CREATE语句TRIGGER',声明帽子你”重新使用来测试它和任何错误信息**的确切文本。现在这与“什么颜色是我的帽子”问题并不遥远。什么帽子?我看不到任何帽子! – 2013-03-11 14:43:43
Postgres 9.1。 CREATE FUNCTION update_country() 返回一个触发器AS $$ BEGIN IF(TG_OP = '更新')THEN UPDATE汽车中设置的国家= '法国' WHERE ID = New.id; END IF; RETURN NULL; END; $$语言plpgsql; - 用于更新表的触发器。 CREATE TRIGGER update_country_col在更新汽车之前 FOR EACH ROW EXECUTE PROCEDURE update_country(); 上述脚本执行但不会将法国添加到国家/地区列。该功能是根据我在网上发现的一个声明改编的。 – geomiles 2013-03-11 15:21:33