Tableau vide que PostgreSQL tableau colonne de valeur par défaut
J'ai défini un tableau de terrain dans postgresql 9.4 de la base de données:
character varying(64)[]
Puis-je avoir un tableau vide, par exemple {} pour la valeur par défaut de ce champ?
Ce sera la syntaxe pour définir de la sorte?
J'obtiens le message d'erreur suivant dans le cas de paramètres 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 vous connecter pour publier un commentaire.
Vous devez utiliser explicitement
array
initialiseur et de fonte que pour le type correct:pwd_history SET DEFAULT '{}'
. Mais comme je comprends les deux solutions sont issus de la même casting pour postgresql (explicite/implicite).{}
pour valeur par défaut dans l'ORM de cartographie, par exemplesizes = Column(postgresql.ARRAY(postgresql.TEXT), server_default="{}")
et laisser faire la conversion implicite, comme mentionné dans @Hett commentaire ci-dessusALTER TABLE foo ALTER COLUMN bar SET DEFAULT '{}';
J'ai testé les deux accepté de répondre et celui des commentaires. Ils travaillent tous les deux.
Je vais graduer les commentaires à une réponse comme c'est mon préféré de la syntaxe.