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
và "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.