3
Unixのタイムスタンプ値を含むCSVファイルをPostgresにコピーする方法は本当に明確ではありません。たとえば、のは、私はこのようになりますCSVファイルを持っているとしましょう:Unixのタイムスタンプ値を持つPostgresへのCSVデータのコピー
timestamp, column_1, column_2, column_3
1439935260;"A";"B";"C"
1439935261;"A";"B";"C"
1439935262;"A";"B";"C"
私も次の列を持つデータベースがあります。
timestamp | timestamp without time zone |
column_1 | character varying(40) |
column_2 | timestamp without time zone |
column_3 | timestamp without time zone |
を、私は、コマンドに
\copy my_table FROM 'my_file.csv' DELIMITER ';' CSV HEADER;
を期待します
は動作しますが、まだ動作しません。エラーが発生する
ERROR: date/time field value out of range: "1439935260"
UNIXタイムスタンプ値のCSVファイルをテーブルにコピーする適切な方法は何ですか?
直接コピーすることはできません。多くのデータがない場合は、適切なタイムスタンプ –
に "unix"値を変換する必要があります。そのテーブルに挿入する前にトリガを作成することができます。その機能は 'NEW 'を行います。timestamp" = to_timestamp(NEW。 "timestamp") 'COPY'のインポートにテーブルの目的が常に使用されている場合 –
@VaoTsun:この場合はBEFOREの前にクエリがキャンセルされるため、トリガーのハックはできませんステージを挿入します。 –