在Postgres函数中更改表

问题描述 投票:0回答:1

我正在执行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”不存在

我在这做什么错..谢谢

sql postgresql plpgsql
1个回答
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;
© www.soinside.com 2019 - 2024. All rights reserved.