Greenplum和Postgresql的主键自增

自增主键

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

1、第一种情况就是创建数据表的时候创建主键自增,由于业务需要自己的数据表已经创建了,而且加了保存了很多数据,所以这种方式不能使用,但是记下笔记,方便自己以后使用。
由于Greenplum是从Postgresql发展而来的,由于postgreSQL主键自增需要使用序列,所以Greenplum主键自增也需要使用序列。
使用SERIAL的方式创建ID主键自增,需要注意的是Greenplum和Postgresql区分大小写,所以注意加上双引号。

  DROP TABLE IF EXISTS "core_data"."users181020";
  CREATE TABLE "core_data"."users181020" (
   "ID" SERIAL primary key NOT NULL,
    "ORIDBNAME" varchar(255) DEFAULT NULL,
    "ORIDBALIAS" varchar(255) DEFAULT NULL,
    "TABLENAME" varchar(255) DEFAULT NULL,
    "ORIACCOUNTNUM" varchar(255) DEFAULT NULL,
    "TARDBNAME" varchar(255) DEFAULT NULL,
    "TARDBALIAS" varchar(255) DEFAULT NULL,
   "TARACCOUNTNUM" varchar(11) DEFAULT NULL,
   "COUNTTIME" timestamp(0) DEFAULT NULL,
   "TAG" varchar(255) DEFAULT NULL
 ) 

注意:自动创建名为users181020_ID_seq的序列,且MAXVALUE=9223372036854775807

Greenplum和Postgresql的主键自增_运维

 红色箭头所指的其他,下拉以后可以看到序列,然后点击序列,可以查看自己创建的序列。由于是正式项目,所以不截图了。

Greenplum和Postgresql的主键自增_运维_02

可以查看详细信息:

Greenplum和Postgresql的主键自增_运维_03

 2、第二种方式是,先创建序列,然后设置字段的自增。

 CREATE SEQUENCE users181020_ID_seq
 START WITH 1    #如果你从1递增,那么你可以设置1,由于我的已经存在数据,所以设置最大MAX("ID")就行了。
 INCREMENT BY 1
 NO MINVALUE
 NO MAXVALUE
 CACHE 1;

比如我的:

 CREATE SEQUENCE users181020_ID_seq
 START WITH 100
 INCREMENT BY 1
 NO MINVALUE
 NO MAXVALUE
 CACHE 1;

然后使用下面的alter table语句就可以将自己的表设置主键自增了。

 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、付费专栏及课程。

余额充值