簡體   English   中英

空數組作為 PostgreSQL 數組列默認值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM