2015-08-28 7 views
8

जब PostgreSQL डेटाबेस के साथ 1 परियोजना NodeJS चलाने मैं समस्या है। मैं जब COPY आदेश का उपयोग pgAdmin में डेटा सम्मिलित करने का प्रयास त्रुटि है।PostgreSQL में, कैसे कॉपी कमांड के साथ डेटा डालने के लिए?

COPY beer (name, tags, alcohol, brewery, id, brewery_id, image) FROM stdin; 

Bons Voeux blonde 9.5 Brasserie Dupont 250 130 generic.png 

इस डेटा में gist:

यह त्रुटि:

ERROR: syntax error at or near "Bons" 
SQL state: 42601 
Character: 1967 

I was create database like this and execute file .sql:

+0

त्रुटि इस प्रकार का डेटाबेस ढांचे के प्रकार है कि आप उपयोग कर रहे हैं पर निर्भर करता है। आपको अपने प्रश्न में ऐसी जानकारी शामिल करनी चाहिए। –

+0

@ vitaly-t, मैं gif फ़ाइल विधि अद्यतन 1 डेटाबेस बना रहा था और फ़ाइल beers.sql निष्पादित कर रहा था लेकिन त्रुटि है। –

+0

कृपया मेरी मदद करें। –

उत्तर

12
COPY tbl FROM STDIN;

pgAdmin द्वारा समर्थित नहीं है।
आप एक सादे सिंटेक्स त्रुटि क्योंकि Postgres एसक्यूएल कोड के रूप में डेटा हो जाता है मिलता है।

तीन संभव समाधान:

1. उपयोग एक बहु पंक्ति INSERT बजाय:

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') 
; 

नोट स्ट्रिंग या संख्यात्मक रूप में मानों के लिए विभिन्न (SQL) वाक्य रचना शाब्दिक।

आप pg_dump using --inserts साथ डेटा उत्पन्न कर सकते हैं। संबंधित:

2. या psql का उपयोग कर कमांड लाइन पर अपनी स्क्रिप्ट कहते हैं। प्रणाली उपयोगकर्ता postgres के रूप में:

psql beer -f beer.sql 

यकीन है कि एक अंत के डेटा मार्कर (\.) डिफ़ॉल्ट text प्रारूप के लिए है हो सकता है। (आप कि की है।) The documentation:

End of data can be represented by a single line containing just backslash-period (\.). An end-of-data marker is not necessary when reading from a file, since the end of file serves perfectly well; it is needed only when copying data to or from client applications using pre-3.0 client protocol.

3. या एक अलग फाइल करने के लिए अपने डेटा को स्थानांतरित (सर्वर से स्थानीय!) कहते हैं, 'beer_data.csv' और अपनी स्क्रिप्ट में COPY .. FROM 'filename' का उपयोग :

COPY beer (name, tags, alcohol, brewery, id, brewery_id, image) FROM '/path/to/beer_data.csv'; 

कौन सा किसी भी तरह से काम करता है।

+2

'pg_dump --inserts > dump.sql' मेरे लिए यह किया है, धन्यवाद! –

1

प्रथम चरण:

pgAdmin पर डाटाबेस belgianbeers पैदा करते हैं।

दूसरा कदम: ओपन शीघ्र और इस कमांड लाइन से चल रहा है:

psql यू postgres -d belgianbeers -एक -f बियर।एसक्यूएल

यह कमांड लाइन से चल रहे ई अद्यतन डेटाबेस तालिकाओं।

यू = उपयोगकर्ता नाम postgres

संबंधित मुद्दे