我在postgresql 9.4数据库中定义了一个数组字段:
character varying(64)[]
我可以有一个空数组,例如{}表示该字段的默认值? 设置的语法是什么?
如果只设置括号{},我会收到以下错误:
SQL error:
ERROR: syntax error at or near "{"
LINE 1: ...public"."accounts" ALTER COLUMN "pwd_history" SET DEFAULT {}
^
In statement:
ALTER TABLE "public"."accounts" ALTER COLUMN "pwd_history" SET DEFAULT {}
答案 0 :(得分:45)
您需要使用显式array
初始值设定项并将其转换为正确的类型:
ALTER TABLE public.accounts
ALTER COLUMN pwd_history SET DEFAULT array[]::varchar[];
答案 1 :(得分:3)
我测试了接受的答案和评论中的答案。它们都起作用。
我将对答案的注释进行分级,因为这是我的首选语法。
ALTER TABLE public.accounts
ALTER COLUMN pwd_history SET DEFAULT '{}';
答案 2 :(得分:1)
它在找不到 SET
的地方抛出了一个错误。这对我有用。
ALTER TABLE public.accounts
ALTER COLUMN pwd_history DEFAULT array[]::varchar[];