アーカイブ

SERIAL型のカラムを持つテーブルへデータを読み込む このエントリーを含むはてなブックマーク はてなブックマーク - SERIAL型のカラムを持つテーブルへデータを読み込む

2005 年 3 月 10 日 コメント 1 件

SERIAL型のカラムを定義すると、値を生成するシーケンスも同時に作られるのだが、このテーブルにデータをcopyでファイルから読み込むときにはシーケンスの値を更新するのを忘れないようにしないといけない。
idというカラムがSERIAL型と仮定して、具体的には、こう。


DB=> \copy the_table to 'the_table.csv' using delimiters ','
DB=> SELECT setval('the_table_id_seq', (SELECT max(id) FROM the_table));

忘れると、INSERTするときに、ユニーク制約で怒られたり、数字が飛んじゃったりすることになる。
コピーしてからINSERTされるまでに間が開くと、ハマったりするかも。

カテゴリー: PostgreSQL タグ: