* シリアル型とシーケンス [#h8f55d86]


** 重複 [#s8b77b49]

 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