Greenplum和Postgresql的主鍵自增


參考:https://blog.csdn.net/u011042248/article/details/49422305

1、第一種情況就是創建數據表的時候創建主鍵自增,由於業務需要自己的數據表已經創建了,而且加了保存了很多數據,所以這種方式不能使用,但是記下筆記,方便自己以后使用。
由於Greenplum是從Postgresql發展而來的,由於postgreSQL主鍵自增需要使用序列,所以Greenplum主鍵自增也需要使用序列。
使用SERIAL的方式創建ID主鍵自增,需要注意的是Greenplum和Postgresql區分大小寫,所以注意加上雙引號。

 1 DROP TABLE IF EXISTS "core_data"."users181020";
 2 CREATE TABLE "core_data"."users181020" (
 3  "ID" SERIAL primary key NOT NULL,
 4   "ORIDBNAME" varchar(255) DEFAULT NULL,
 5   "ORIDBALIAS" varchar(255) DEFAULT NULL,
 6   "TABLENAME" varchar(255) DEFAULT NULL,
 7   "ORIACCOUNTNUM" varchar(255) DEFAULT NULL,
 8   "TARDBNAME" varchar(255) DEFAULT NULL,
 9   "TARDBALIAS" varchar(255) DEFAULT NULL,
10   "TARACCOUNTNUM" varchar(11) DEFAULT NULL,
11   "COUNTTIME" timestamp(0) DEFAULT NULL,
12   "TAG" varchar(255) DEFAULT NULL
13 ) 

注意:自動創建名為users181020_ID_seq的序列,且MAXVALUE=9223372036854775807

 紅色箭頭所指的其他,下拉以后可以看到序列,然后點擊序列,可以查看自己創建的序列。由於是正式項目,所以不截圖了。

可以查看詳細信息:

 2、第二種方式是,先創建序列,然后設置字段的自增。

1 CREATE SEQUENCE users181020_ID_seq
2 START WITH 1    #如果你從1遞增,那么你可以設置1,由於我的已經存在數據,所以設置最大MAX("ID")就行了。
3 INCREMENT BY 1
4 NO MINVALUE
5 NO MAXVALUE
6 CACHE 1;

比如我的:

1 CREATE SEQUENCE users181020_ID_seq
2 START WITH 100
3 INCREMENT BY 1
4 NO MINVALUE
5 NO MAXVALUE
6 CACHE 1;

然后使用下面的alter table語句就可以將自己的表設置主鍵自增了。

1 alter table users181020 alter column id set default nextval('users181020_ID_seq');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM