sql >> Database teknologi >  >> RDS >> PostgreSQL

Rediger Django AutoField-startværdi

Måder at indstille/nulstille en sekvens i PostgreSQL

(ikke nødvendigvis til max(id) ).

  • Der er den enkle måde, du har i spørgsmålet. Du kan indstille sekvensen til at starte ved et vilkårligt tal med setval() :

    SELECT setval('tbl_id_seq');
    
  • Så er der standard SQL-måden med ALTER SEQUENCE gør det samme:

    ALTER SEQUENCE myseq RESTART WITH 1;
    
  • Hvis du kan lide at genstarte dine sekvenser ved andre tal end standard 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
    
  • Og der er en anden måde, når du tømmer en tabel med TRUNCATE:

    TRUNCATE foo RESTART IDENTITY;
    

    Implicit udfører ALTER SEQUENCE foo_id_seq RESTART;




  1. JSON_VALUE() Eksempler i SQL Server (T-SQL)

  2. Hvordan opretter du en skrivebeskyttet bruger i PostgreSQL?

  3. 7 måder at returnere duplikerede rækker, der har en primær nøgle i MariaDB

  4. Ny udgivelse:Spotlight Tuning Pack 7.1.9