前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Greenplum和Postgresql的主键自增

Greenplum和Postgresql的主键自增

作者头像
别先生
发布2018-11-07 11:26:30
2K0
发布2018-11-07 11:26:30
举报
文章被收录于专栏:别先生别先生

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

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

代码语言:javascript
复制
 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、第二种方式是,先创建序列,然后设置字段的自增。

代码语言:javascript
复制
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;

比如我的:

代码语言:javascript
复制
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语句就可以将自己的表设置主键自增了。

代码语言:javascript
复制
1 alter table users181020 alter column id set default nextval('users181020_ID_seq');
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-10-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档