COPY tbl FROM STDIN;
pgAdmin tarafından desteklenmez.
Düz bir sözdizimi hatası alıyorsunuz çünkü Postgres, verileri SQL kodu olarak alıyor.
üç çözümler:
1. kullanımı yerine, çok sıralı 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')
;
Not dize veya sayısal olarak farklı değerler (SQL) sözdizimi değişmezleri.
Verileri pg_dump
using --inserts
ile oluşturabilirsiniz.
2. Ya psql
kullanarak komut satırında Senaryonu arayın: İlgili. sistem kullanıcısı postgres
gibi:
psql beer -f beer.sql
varsayılan text
biçimi için bir sonu verilerine işaretleyici (\.
) olduğundan emin olun. 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. (Sen. O var) Ya ayrı bir dosyaya veri taşımak (sunucuya yerel!), 'beer_data.csv' demek ve komut COPY .. FROM 'filename'
kullanmak : her iki şekilde çalışır
COPY beer (name, tags, alcohol, brewery, id, brewery_id, image) FROM '/path/to/beer_data.csv';
.
Bu tür bir hata, kullandığınız veritabanı çerçevesinin türüne bağlıdır. Sorunuza böyle bir ayrıntı eklemelisiniz. –
@ vitaly-t, gif dosyası yöntemini 1 veritabanı oluşturuyordum ve beers.sql dosyasını çalıştırıyordum ama hata var. –
Lütfen bana yardım edin. –