シリアルの開始値を変更する - Postgresql 質問する

シリアルの開始値を変更する - Postgresql 質問する

シリアルに関してちょっとした問題があります。ファイルから、クライアント ID (シリアルで、主キー) があるデータベースに入力しました。クライアントが 300 台あるので、クライアント ID は 300 個 (1 から 300) です。問題は、新しいクライアント用のフォームがあることです。クライアントを追加すると、プログラムが ID 1 のクライアントを追加するか、ID 1 がすでに別のクライアントに割り当てられているため、クライアントを追加できません。

そこで質問ですが、この問題を解決するためにシリアルの開始値を変更することは可能でしょうか?

ベストアンサー1

RESTART WITH現在のシーケンス番号を変更するには、を使用してシーケンスを変更できます。

ALTER SEQUENCE test_seq RESTART WITH 300;

serialキーワードを使用して作成したシーケンス名を取得するには、

SELECT adsrc FROM pg_attrdef WHERE adrelid = (SELECT oid FROM pg_class WHERE relname = 'table name goes here'); 

テスト用のSQLfiddle

おすすめ記事