2017-05-11 7 views
0

私はalter tableコマンドを実行しており、デフォルト値を持つ新しいカラムを追加するとエラーが表示されます。Postgres関数でテーブルを変更

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; 

エラー: ERROR:列あなたがそれをオブジェクトとして理解されている文字列を引用していない場合

間違っている私はここでやっている...おかげ

+0

なぜ '実行 'ですか? DDL文は、動的SQLを使用せずに直接関​​数に記述できます。 –

答えて

1

存在しない「NA」 、これを試してください:

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; 
関連する問題