シリアル型とシーケンス

重複

PGSQL=> CREATE TABLE t1 ( id serial primary key, n int );
PGSQL=> INSERT INTO t1 ( n ) VALUES ( 10 );
PGSQL=> INSERT INTO t1 ( id, n ) VALUES ( 3, 100 );
PGSQL=> INSERT INTO t1 ( n ) VALUES ( 11 );
PGSQL=> SELECT * FROM t1;
 id |  n
----+-----
  1 |  10
  3 | 100
  2 |  11
(3 行)

PGSQL=> INSERT INTO t1 ( n ) VALUES ( 12 );
ERROR:  重複キーが一意性制約"t1_pkey"に違反しています
DETAIL:  キー (id)=(3) はすでに存在します
  • シリアル型のカラムに(シーケンスを使わず)手で値を投入すると、いずれ重複する。
  • シリアル型かつ主キーの場合は、ユニーク制約に違反するので、エラーになる。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2015-05-18 (月) 21:30:49 (1669d)