在Postgres函数中更改表

时间:2017-05-11 12:38:53

标签: sql postgresql plpgsql

我正在执行alter table命令并添加一个新列,其默认值显示错误。

CREATE OR REPLACE FUNCTION test_function() RETURNS void AS $$
BEGIN
EXECUTE format('ALTER TABLE viminfo ADD COLUMN vimtype character varying(64) NOT NULL DEFAULT (NA), ADD COLUMN vimname character varying(255) NOT NULL DEFAULT (NA)');
END
$$language plpgsql;

错误: 错误:列“na”不存在

我在这里做错了什么..谢谢

1 个答案:

答案 0 :(得分:1)

如果你没有引用它被理解为对象的字符串,试试这个:

    CREATE OR REPLACE FUNCTION test_function() RETURNS void AS $$
BEGIN
EXECUTE format('ALTER TABLE viminfo ADD COLUMN vimtype character varying(64) NOT NULL DEFAULT %L, ADD COLUMN vimname character varying(255) NOT NULL DEFAULT %L','NA','NA');
END
$$language plpgsql;