34

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

だから私の質問は: この問題を解決するためにシリアルの開始値を変更することは可能ですか?

4

5 に答える 5

52

を使用してシーケンスを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

于 2013-05-03T15:55:39.437 に答える