Matrix leegmaken als standaardwaarde PostgreSQL-arraykolom

Ik heb een matrixveld gedefinieerd in de postgresql 9.4 database:

character varying(64)[]

Kan ik een lege array hebben, b.v. {} voor de standaardwaarde van dat veld?
Wat is de syntaxis om dit in te stellen?

Ik krijg de volgende foutmelding als ik alleen haakjes zet {}:

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 {}

Antwoord 1, autoriteit 100%

Je moet de expliciete arrayinitializer gebruiken en die naar het juiste type casten:

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

Antwoord 2, autoriteit 31%

Ik heb zowel het geaccepteerde antwoord als het antwoord uit de opmerkingen getest. Ze werken allebei.
Ik zal de opmerkingen omzetten in een antwoord, omdat dit mijn voorkeurssyntaxis is.

ALTER TABLE public.accounts 
    ALTER COLUMN pwd_history SET DEFAULT '{}';

Antwoord 3, autoriteit 3%

Er is een fout opgetreden waarbij SETniet kan worden gevonden. Dit werkte voor mij.

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

Other episodes