[英]Empty array as PostgreSQL array column default value
我在 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 {}
您需要使用显式array
初始值设定项并将其转换为正确的类型:
ALTER TABLE public.accounts
ALTER COLUMN pwd_history SET DEFAULT array[]::varchar[];
我测试了接受的答案和评论中的答案。 他们都工作。
我会将评论归结为答案,因为这是我的首选语法。 🙂
ALTER TABLE public.accounts
ALTER COLUMN pwd_history SET DEFAULT '{}';
它在找不到SET
地方抛出了一个错误。 这对我有用。
ALTER TABLE public.accounts
ALTER COLUMN pwd_history DEFAULT array[]::varchar[];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.