在过去的一个小时或更长时间里,我一直在尝试将更新语句放入触发器中。我理解 UPDATE 语句的概念,下面的工作很好
UPDATE cars SET country = 'France';
我想要的是把它放到一个触发器中,这样当汽车表更新时,国家列就会自动更新为法国。
我已经尝试过调整我在互联网上发现的函数和触发器,但我显然使语句错误,因为它们要么不执行,要么执行但在新记录时不更新国家/地区字段被添加。
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。
我知道答案会很简单!