PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Psql COPY avec contrainte échoue

Il semble que votre csv source utilise le ' (guillemets simples) pour citer toutes les colonnes. Vous pouvez spécifier cela comme guillemet en utilisant l'option QUOTE

Le \copy la commande essaie de charger 'old' dans la colonne d'état qui vérifie que les valeurs sont soit new ou old . Les guillemets supplémentaires violent la contrainte.

\copy example_table(name,status) FROM example.sql DELIMITER ',' CSV Header QUOTE ''''

4 guillemets simples sont requis car 1 spécifie le caractère guillemet réel, 1 pour échapper le caractère guillemet et 2 entoure le caractère guillemet échappé.