Adım 1: kabuk itibaren STDIN kullanarak tabloya veri kopyalamak:
CREATE TABLE csv_data (
colA FLOAT,
colB FLOAT
);
Adım 2: İçe aktardığınız dosya eşleşen bir tablo oluşturun . veri dosyasındaki değil sütunu ekleyin ve bunu bir varsayılan değer vermek:
cat YourFile.csv | psql -c "COPY csv_data FROM STDIN (FORMAT CSV, DELIMITER ':', HEADER FALSE);"
Adım 3 (. Eğer meraklıysanız, STDIN gitmek yoludur neden this other question bakınız).
ALTER TABLE csv_data ADD COLUMN colC FLOAT DEFAULT 1234.56;
Düzenleme:
Birden fazla dosya almak isterseniz:
1. Adım:
CREATE TABLE csv_data_staging (
colA FLOAT,
colB FLOAT
);
CREATE TABLE csv_data (
colA FLOAT,
colB FLOAT,
colC FLOAT
);
Adım 2:
cat YourFile.csv | psql -c "COPY csv_data_staging FROM STDIN (FORMAT CSV, DELIMITER ':', HEADER FALSE);"
iki tablo oluşturun
Adım 3: Gerektiğinde
INSERT INTO csv_data SELECT *, 1234.45 /* The C Value */ FROM csv_data_staging;
TRUNCATE csv_data_staging;
2'den & 3 adımları tekrarlayın.
ve sonra kopyaladıktan sonra, c sütununun boş olduğu değerinize c sütununda bir güncelleştirme yapın. – Bill
Ama aynı tabloya başka bir metin dosyası eklemek istersem, fakat farklı c ister miyim? – Anh