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 {}
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[];
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 '{}';