我在postgresql 9.4数据库中定义了一个数组字段:
character varying(64)[]
Run Code Online (Sandbox Code Playgroud)
我可以为该字段的默认值设置一个空数组,例如{}吗?设置的语法是什么?
如果只设置括号{},我会收到以下错误:
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 {}
Run Code Online (Sandbox Code Playgroud)
a_h*_*ame 49
您需要使用显式array初始化程序并将其强制转换为正确的类型:
ALTER TABLE public.accounts
ALTER COLUMN pwd_history SET DEFAULT array[]::varchar[];
Run Code Online (Sandbox Code Playgroud)
它在找不到的地方抛出错误SET。这对我有用。
ALTER TABLE public.accounts
ALTER COLUMN pwd_history DEFAULT array[]::varchar[];
Run Code Online (Sandbox Code Playgroud)
我测试了接受的答案和评论中的答案。他们俩都工作。
我将对答案的注释进行分级,因为这是我的首选语法。
ALTER TABLE public.accounts
ALTER COLUMN pwd_history SET DEFAULT '{}';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20983 次 |
| 最近记录: |