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

Tự động gia tăng khóa chính của PostgreSQL 9.1

serial ít nhiều là một loại cột để nói rằng integer serial giống như nói text text , chỉ cần nói serial :

CREATE TABLE IF NOT EXISTS "category" (
  "id" SERIAL PRIMARY KEY,
  "name" varchar(30) DEFAULT NULL
);

Nếu bạn muốn tự tạo chuỗi thì bạn muốn đặt giá trị mặc định của id giá trị tiếp theo trong chuỗi và điều đó có nghĩa là nói default nextval('your_seq') :

CREATE SEQUENCE your_seq;
CREATE TABLE IF NOT EXISTS "category" (
  "id" integer PRIMARY KEY default nextval('your_seq'),
  "name" varchar(30) DEFAULT NULL
);

Để mô phỏng serial thông thường hành vi mà bạn cũng sẽ muốn tạo chuỗi thuộc sở hữu của bảng:

alter sequence your_seq owned by category.id;

Đọc Loại sê-ri phần hướng dẫn có thể hữu ích.

Tôi cũng khuyên bạn không nên trích dẫn kép tên bảng và cột của mình trừ khi bạn phải làm như vậy. PostgreSQL sẽ gấp các số nhận dạng của bạn thành chữ thường nên id"id" sẽ giống như vậy nhưng trích dẫn không cần thiết là một thói quen xấu dễ dẫn đến tình trạng lộn xộn các trích dẫn ở khắp mọi nơi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres FK tham chiếu PK tổng hợp

  2. Chọn dữ liệu cụ thể từ nội dung XML đã cho bằng cách sử dụng manh mối WHERE

  3. pg_dump:[archiver (db)] truy vấn không thành công:ERROR:quyền bị từ chối đối với quan hệ abouts

  4. Quyền thu hồi PostgreSQL từ bảng pg_catalog

  5. Truy vấn hiệu quả bảng chuỗi thời gian khổng lồ cho một hàng cứ sau 15 phút