PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sửa đổi giá trị bắt đầu Django AutoField

Các cách thiết lập / đặt lại trình tự trong PostgreSQL

(không nhất thiết phải max(id) ).

  • Có một cách đơn giản mà bạn có trong câu hỏi. Bạn có thể đặt chuỗi bắt đầu ở một số tùy ý bằng setval() :

    SELECT setval('tbl_id_seq');
    
  • Sau đó, có cách SQL tiêu chuẩn với ALTER SEQUENCE làm tương tự:

    ALTER SEQUENCE myseq RESTART WITH 1;
    
  • Nếu bạn muốn bắt đầu lại trình tự của mình ở các số khác với số 1 mặc định:

    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
    
  • Và có một cách khác, khi bạn làm trống một bảng với TRUNCATE:

    TRUNCATE foo RESTART IDENTITY;
    

    Thực thi ngầm định 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. Cách hiểu một PHÂN TÍCH GIẢI THÍCH

  2. Cột động trong postgres câu lệnh SELECT

  3. Kiểm tra xem NULL có tồn tại trong mảng Postgres không

  4. Cách date_part () hoạt động trong PostgreSQL

  5. Làm cách nào để nhận hỗ trợ LISTEN / NOTIFY không đồng bộ / hướng sự kiện trong Java bằng cách sử dụng cơ sở dữ liệu Postgres?