• 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');
  • 相关阅读:
    jq绑定on事件无效
    数字以0补全
    redis常用操作
    mysql数据操作日常
    centos端口映射
    centos7防火墙操作
    mysql5.7order by问题
    centos无法上网解决方法
    面试题
    ztree 获取子节点所有父节点的name的拼接
  • 原文地址:https://www.cnblogs.com/biehongli/p/9822336.html
Copyright © 2020-2023  润新知