Dans PostgreSQL, Comment insérer des données avec la commande COPIER?
j'ai un problème quand exécuter 1 Project NodeJs avec la base de données PostgreSQL.
J'ai une erreur en essayant d'insérer des données dans pgAdmin en utilisant le COPY
la commande.
COPY beer (name, tags, alcohol, brewery, id, brewery_id, image) FROM stdin;
Bons Voeux blonde 9.5 Brasserie Dupont 250 130 generic.png
cette donnée en gist:
Cette erreur:
ERROR: syntax error at or near "Bons"
SQL state: 42601
Character: 1967
2 réponses
COPY tbl FROM STDIN;
n'est pas supporté par pgAdmin.
Vous obtenez une erreur de syntaxe simple parce que Postgres obtient les données en code SQL.
Trois solutions possibles:
1. utilisez une rangée multiple INSERT
au lieu de:
INSERT INTO beer(name, tags, alcohol, brewery, id, brewery_id, image)
VALUES
('Bons Voeux', 'blonde', 9.5, 'Brasserie Dupont', 250, 130, 'generic.png')
, ('Boerke Blond', 'blonde', 6.8, 'Brouwerij Angerik', 233, 287 'generic.png')
;
notez la syntaxe différente (SQL) pour les valeurs en chaîne ou littérales numériques.
Vous pouvez générer les données avec pg_dump
en utilisant --inserts
. Connexes:
2. ou appelez votre script sur la ligne de commande en utilisant psql
. Comme le système de l'utilisateur postgres
:
psql beer -f beer.sql
assurez-vous qu'il y a un marqueur de fin de données (\.
) pour défaut text
format. (Vous avez que.) la documentation:
la fin des données peut être représentée par une seule ligne contenant seulement barre oblique inverse de la période (
\.
). Une fin de marqueur de données n'est pas nécessaire lorsque lecture à partir d'un fichier, depuis la fin de fichier sert parfaitement bien; il n'est nécessaire que lorsque vous copiez des données à destination ou en provenance d'applications client en utilisant protocole client pré-3.0.
3. ou déplacez vos données dans un fichier séparé (local pour le serveur!), dire " beer_data.csv " et utiliser COPY .. FROM 'filename'
dans votre script:
COPY beer (name, tags, alcohol, brewery, id, brewery_id, image) FROM '/path/to/beer_data.csv';
quel fonctionne dans les deux sens.
Première étape:
créer la base de données belgianbeers sur pgAdmin.
Deuxième étape: Ouvrez l'invite et lancez cette ligne de commande:
psql-U postgres-d belgianbeers-a-f beers.sql
cette ligne de commande exécute les tables de mise à jour de la base de données.
-U = nom d'utilisateur postgres