MW211 EXIT

devlog
PostgreSQL/連番初期化
2011年09月06日
PostgreSQLのAutoNumber機能(bigserial型など)を、
「1」に初期化するSQL文は以下のとおり。
┌──────────────────────────────────────┐
│ALTER SEQUENCE AutoNumber用列名 RESTART WITH 1;                             │
└──────────────────────────────────────┘
なお、下記でも代用できる。
┌──────────────────────────────────────┐
│SELECT SETVAL ('AutoNumber用列名', 1, false);                               │
└──────────────────────────────────────┘
この場合、第一引数の「AutoNumber用列名」を「'」で囲うことに注意。
また、第三引数に「SELECT SETVAL」の「is_called」を抑制する
「false」指定を行わないと、一件目の挿入データが「2」から始まってしまうので
こちらも注意が必要である。

なお、「TRUNCATE TABLE」で表を初期化する場合には、
「RESTART IDENTITY」オプションを付加してあげれば、上記のことをやってくれる。
┌──────────────────────────────────────┐
│TRUNCATE TABLE 表 RESTART IDENTITY;                                         │
└──────────────────────────────────────┘
分類:PostgreSQL