?在 PostgreSQL 中,自增主鍵通常是通過使用 SERIAL 類型或在新版本中使用 IDENTITY 列來實現的。
1. 使用 SERIAL 類型
??SERIAL 是一個自動增加的整數,常用于主鍵。當插入新的行時,PostgreSQL 會自動為這個列生成一個新的值。
??例如
CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(100)
);
??在這個例子中,id 列是一個自動增加的整數,并且是這個表的主鍵。
2. 使用 IDENTITY 列
??從 PostgreSQL 10 開始,你可以使用 IDENTITY 列來實現類似的功能,這為 SQL 標準提供了更好的支持。
??例如
CREATE TABLE users ( id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name VARCHAR(100)
);
??在這個例子中,id 列是一個自動增加的整數,與 SERIAL 類似,但它使用了 IDENTITY 語法。GENERATED ALWAYS AS IDENTITY 表示這個列的值總是由數據庫自動生成。
??注意當你使用 IDENTITY 列時,你不能在 INSERT 語句中明確地為這個列提供一個值(除非你使用了 BY DEFAULT 選項)。
3、已經創建好的表如何修改自增主鍵
??第一步、創建一個序列
CREATE SEQUENCE sys_user_id_seq START 3;
??第二步、將指定字段修改為對應的數據類型序列
alter table sys_user alter column user_id set default nextval('sys_user_id_seq');
總結
??選擇哪種方法取決于你的具體需求和使用的 PostgreSQL 版本。對于較早的版本,你將需要使用 SERIAL。對于更新的版本,IDENTITY 列提供了更多的靈活性和與 SQL 標準的更好兼容性。