日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

postgre 没有主键自增ma_PostgreSQL 主键自增解决方案

發布時間:2025/4/5 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgre 没有主键自增ma_PostgreSQL 主键自增解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為工作需要,接觸到了PostgreSQL,遇到了主鍵自增的情況

8.1.4. Serial Types

數據類型serial和bigserial不是真正的類型,而只是用于設置唯一標識符列的符號方便(類似于 某些其他數據庫支持的AUTO_INCREMENT屬性)。在當前實現中,指定:CREATE TABLE tablename(

colname SERIAL

);

相當于指定:CREATE SEQUENCE tablename_colname_seq;

CREATE TABLE tablename (

colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')

);

ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;

1、新創建表的時候可以指定為 serial 類型,自動將創建序列

2、修改已經存在的表,則可以CREATE SEQUENCE table_serial_name

START WITH 1

INCREMENT BY 1

NO MINVALUE

NO MAXVALUE

CACHE 1;

alter table 'you_table_name' alter column 'you_column' set default nextval('table_serial_name');

# 開始值為1,增量為1,沒有最小值,沒有最大值

另外用到的幾個和MySQL不同的地方

1、查詢所有序列select relname from pg_class where relowner=(select usesysid from pg_user where usename='postgres') and relkind='S'; #此處的 postgres 是用戶名

2、查詢主鍵SELECT pg_constraint.conname, pg_attribute.attname

FROM pg_constraint

INNER JOIN pg_class ON pg_constraint.conrelid = pg_class.oid

INNER JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid AND pg_attribute.attnum = pg_constraint.conkey [ 1 ]

WHERE pg_class.relname = 'you_table_name' AND pg_constraint.contype = 'p'

總結

以上是生活随笔為你收集整理的postgre 没有主键自增ma_PostgreSQL 主键自增解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。