2016-11-19 5 views
0

J'ai travaillé sur une application Express dont le formulaire est conçu pour contenir des lignes et des guillemets.Guillemets simples stockés dans une base de données Postgres

Certaines des lignes auront des guillemets simples ('), mais dans l'ensemble, il est capable de stocker l'information et je suis capable de le sauvegarder et de le stocker sans aucun problème. Maintenant, quand je veux faire pg_dump et avoir la base de données mis dans un fichier SQL, les citations semblent causer certaines choses à apparaître un peu foiré dans mon éditeur de texte. Dois-je créer une méthode pour convertir toutes les guillemets simples en doubles, ou puis-je le laisser tel quel et le pouvoir le télécharger dans la base de données sans causer de problèmes majeurs? Je sais que les gens continueront à entrer dans les lignes qui contiennent des guillemets simples ou doubles, donc je voudrais savoir toute solution ou réponse qui aiderait grandement.

Répondre

2

Les guillemets simples dans les types de données de caractère sont aucun problème. Vous avez juste besoin de les échapper correctement dans les littéraux de chaîne.

Pour écrire des données avec INSERT, vous devez citer tous les littéraux de chaîne selon les règles de syntaxe SQL. Il existe des outils pour le faire pour vous ...

Cependant, pg_dump prend soin d'échapper automatiquement. Le mode par défaut produit la sortie de texte à réimporter avec COPY (beaucoup plus rapide que INSERT), et les guillemets simples n'ont pas de signification spéciale là. Et dans le mode csv (non par défaut), le guillemet par défaut est un guillemet double (") et configurable. The manual:

QUOTE

Indique le caractère citant à utiliser lorsqu'une valeur de données est cité. La valeur par défaut est double-quote. Ce doit être un seul caractère d'un octet. Cette option est autorisée uniquement lors de l'utilisation du format CSV.

Le format est défini par des règles pour COPY et non par des règles de syntaxe SQL.