web-dev-qa-db-fra.com

Tableau vide comme valeur par défaut de la colonne de tableau PostgreSQL

J'ai défini un champ de tableau dans la base de données postgresql 9.4:

character varying(64)[]

Puis-je avoir un tableau vide, par exemple {} pour la valeur par défaut de ce champ? Quelle sera la syntaxe pour le paramétrer?

Je reçois une erreur suivante en cas de réglage entre crochets {}:

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

Vous devez utiliser l'initialisateur explicite array et le convertir en un type correct

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

J'ai testé à la fois la réponse acceptée et celle des commentaires. Ils travaillent tous les deux.
Je passerai les commentaires à une réponse car c'est la syntaxe que je préfère. ????

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