2016-04-04 5 views
0

私はデータベースとテーブルを作成しました。 ...ubuntuを通してPostgreSQLのテキストファイルを挿入しますか?

numB2

numA1:numB1

numA2

表名(A、B、C)

は私も同じようにフォーマットされたテキストファイルを持っています

numAn:numBn

このテキストファイルをtに挿入するにはどうすればよいですか?テーブルを作成し、列Cのすべての行を値に設定しますか?列Cの値は、表全体で同じにする必要があります。

答えて

0

チェックCOPY

\copy your_table(c) FROM 'yourPathOnClient/yourFile.txt'; 
+0

をコピーしてから、c列の値をc列の値に更新してください。 – Bill

+0

しかし、別のテキストファイルを同じテーブルに追加したいのですが、別のテキストファイルを追加したいのですが? – Anh

0

ステップ1:インポートするファイルに一致するテーブルを作成します。

CREATE TABLE csv_data (
    colA FLOAT, 
    colB FLOAT 
); 

ステップ2:シェルから、STDINを使用してテーブルにデータをコピーします。 (STDINが進むべき道である理由あなたが興味があればthis other questionを参照してください。)

cat YourFile.csv | psql -c "COPY csv_data FROM STDIN (FORMAT CSV, DELIMITER ':', HEADER FALSE);" 

ステップ3:データファイルにない列を追加し、それをデフォルト値を与えるを。

ALTER TABLE csv_data ADD COLUMN colC FLOAT DEFAULT 1234.56; 

編集:

複数のファイルをインポートする場合:

ステップ1:

CREATE TABLE csv_data_staging (
    colA FLOAT, 
    colB FLOAT 
); 

CREATE TABLE csv_data (
    colA FLOAT, 
    colB FLOAT, 
    colC FLOAT 
); 

ステップ2:

cat YourFile.csv | psql -c "COPY csv_data_staging FROM STDIN (FORMAT CSV, DELIMITER ':', HEADER FALSE);" 
2つのテーブルを作成します。

ステップ3:必要に応じて

INSERT INTO csv_data SELECT *, 1234.45 /* The C Value */ FROM csv_data_staging; 
TRUNCATE csv_data_staging; 

繰り返しが2 & 3を繰り返します。

+0

しかし、別のテキストファイルを同じテーブルに追加したいのですが、別のテキストファイルを追加したいのですが? – Anh

関連する問題