简单方案:
CREATE TABLE foo (bar int);
INSERT INTO foo VALUES (42);
CREATE FUNCTION baz() RETURNS int AS $$
SELECT bar
FROM foo
$$ LANGUAGE SQL;
SELECT baz();
这有效并返回42。
我不喜欢我的列命名,所以我将其重命名:
ALTER TABLE foo RENAME bar TO qux;
但是现在,如果我再次调用该函数:
SELECT baz();
[42703]错误:列“ bar”不存在
内联过程中的SQL函数“ baz”
我希望重命名为“级联”为函数体,因为PostgreSQL会阻止使用无效的列引用创建函数。
我真的必须重新创建通过旧名称引用该列的每个函数吗?使用版本10.7。