參考: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');