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');

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值