PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zmodyfikuj wartość początkową AutoField Django

Sposoby ustawiania / resetowania sekwencji w PostgreSQL

(niekoniecznie do max(id) ).

  • W pytaniu jest prosty sposób. Możesz ustawić sekwencję, aby zaczynała się od dowolnej liczby za pomocą setval() :

    SELECT setval('tbl_id_seq');
    
  • Następnie jest standardowy sposób SQL z ALTER SEQUENCE robi to samo:

    ALTER SEQUENCE myseq RESTART WITH 1;
    
  • Jeśli chcesz ponownie uruchomić sekwencje przy numerach innych niż domyślne 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
    
  • I jest inny sposób, kiedy opróżnisz stół za pomocą TRUNCATE:

    TRUNCATE foo RESTART IDENTITY;
    

    Niejawnie wykonuje ALTER SEQUENCE foo_id_seq RESTART;




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy powinienem określić zarówno INDEX, jak i UNIQUE INDEX?

  2. Udostępnij połączenie do postgres db między procesami w Pythonie

  3. Obsługa schematów Postgres przez SQLAlchemy

  4. psycopg2 wycieka pamięć po dużym zapytaniu

  5. Nowe funkcje zgodności z Oracle w PostgresPlus Advanced Server 9.3Beta