sql >> データベース >  >> RDS >> PostgreSQL

DjangoAutoFieldの開始値を変更する

    PostgreSQLでシーケンスを設定/リセットする方法

    (必ずしもmax(id)である必要はありません 。

    • あなたが質問に持っている簡単な方法があります。 setval()を使用して、任意の番号で開始するようにシーケンスを設定できます。 :

      SELECT setval('tbl_id_seq');
      
    • 次に、ALTER SEQUENCEを使用した標準のSQLの方法があります。 同じことをする:

      ALTER SEQUENCE myseq RESTART WITH 1;
      
    • デフォルトの1以外の番号でシーケンスを再開したい場合:

      CREATE TABLE foo(id serial, a text);      -- creates sequence "foo_id_seq"
      INSERT INTO foo(a) VALUES('a');           -- seq. starts with --> 1
      
      ALTER SEQUENCE foo_id_seq START WITH 10;  -- doesn't restart sequence
      INSERT INTO foo(a) VALUES('b');           --> 2
      
      ALTER SEQUENCE foo_id_seq RESTART;        -- restarts sequence
      INSERT INTO foo(a) VALUES('c');           --> 10
      
    • また、TRUNCATEを使用してテーブルを空にする別の方法があります:

      TRUNCATE foo RESTART IDENTITY;
      

      ALTER SEQUENCE foo_id_seq RESTART;を暗黙的に実行します




    1. 外部キー参照アクションを変更するにはどうすればよいですか? (行動)

    2. Oracle DROP TABLE IF EXISTS Alternatives

    3. UniVerseのヒント

    4. PostgreSQL、既存のテーブルを再構成し、主キーをtype=serialに変更します