Подтвердить что ты не робот

Пустой массив как значение столбца столбца PostgreSQL по умолчанию

У меня есть определенное поле массива в базе данных 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 {}
4b9b3361

Ответ 1

Вам нужно использовать явный инициализатор array и применить его к правильному типу:

ALTER TABLE public.accounts 
    ALTER COLUMN pwd_history SET DEFAULT array[]::varchar[];