zoukankan      html  css  js  c++  java
  • postgres 序列

    postgres序列(serial)和类型:https://www.cnblogs.com/alianbog/p/5654604.html

    序列:https://www.cnblogs.com/mchina/archive/2013/04/10/3012493.html

    serial序列其实就是当不给此字段赋值的时候,自动获取下一个值(唯一),可以当作自增主键

    一、 创建表的时候创建序列

    1. 方式一

    create table tbl_serial(a serial,b varchar(2));

    2. 方式二

    DROP SEQUENCE if EXISTS "public"."quake_data_id_seq";  
    CREATE SEQUENCE "public"."quake_data_id_seq"  
     INCREMENT 1  
     MINVALUE 1  
     MAXVALUE 9223372036854775807  
     START 1  
     CACHE 1;
     
    DROP TABLE if EXISTS "public"."quake_data"; 
    CREATE TABLE "public"."quake_data" (
      "id" int4 NOT NULL DEFAULT nextval('quake_data_id_seq'::regclass),
      "quake_id" int4 DEFAULT 0,
      "channel_id" varchar(40) COLLATE "pg_catalog"."default" DEFAULT NULL,
      "gauge_data" float8 DEFAULT NULL,
      "guage_time" timestamp(6) DEFAULT NULL,
      CONSTRAINT "1" PRIMARY KEY ("id")
    )
    ;
    
    ALTER TABLE "public"."quake_data" 
      OWNER TO "username";
    
    COMMENT ON COLUMN "public"."quake_data"."quake_id" IS '事件id';
    COMMENT ON COLUMN "public"."quake_data"."channel_id" IS '点号';
    COMMENT ON COLUMN "public"."quake_data"."gauge_data" IS '测量值';
    COMMENT ON COLUMN "public"."quake_data"."guage_time" IS '测量时间';

    二、表已经创建好,后来单独创建序列,给表字段绑定序列

    创建序列示例:

    CREATE SEQUENCE "public"."quake_data_id_seq"  
     INCREMENT 1  
     MINVALUE 1  
     MAXVALUE 9223372036854775807  
     START 1  
     CACHE 1;

    修改字段默认值:

    1. 使用的navicat

     2. 使用ALTER命令

    ALTER TABLE "public"."ttt" 
      ALTER COLUMN "id" TYPE int4 USING "quake_id"::int4;
    
    ALTER TABLE "public"."ttt" 
      ALTER COLUMN "id" SET DEFAULT nextval('ttt_id_seq'::regclass);

    PS: 具体alter命令可以取官方网站查询:https://www.postgresql.org/docs/9.1/sql-altertable.html

    小技巧:

    还有一个方便的方法:使用navticat修改一个字段(属性,添加字段,删除字段等等都可以),然后点击SQL预览,就可以看到对应的sql命令了

    比如下面图片演示,更改guage_time字段不能为空

    然后点击SQL预览, 显示sql语句:

    ALTER TABLE "public"."ttt" 
      ALTER COLUMN "guage_time" SET NOT NULL;

  • 相关阅读:
    053(四十四)
    053(四十三)
    053(四十二)
    053(四十一)
    053(四十)
    053(三十九)
    053(三十八)
    053(三十七)
    053(三十六)
    【leetcode❤python】231. Power of Two
  • 原文地址:https://www.cnblogs.com/zhzhlong/p/11460327.html
Copyright © 2011-2022 走看看