我有一个由第三方产品在 PostgreSQL(版本 9)数据库中创建的表,我需要更改该表以添加一个新列,然后将相关列设置为标准值。
我的函数中有以下内容:
CREATE FUNCTION alterscorecolumns()
RETURNS void AS
$BODY$
ALTER TABLE "hi_scores" ADD "total_score" integer;
UPDATE "hi_scores" SET total_score = score1+score2+score3;
$BODY$
但是,我不允许这样做,因为它不知道该total_score
字段存在。我刚收到消息ERROR: column "total_score" of relation "hi_scores" does not exist.
我猜这有一些与执行计划相关的原因,也许我需要告诉它ALTER TABLE
在它尝试执行更新之前运行它,但我似乎无法弄清楚我需要做什么。