• 【数据库_Postgresql】数据库主键自增长之加序列和不加序列2种方法


    将表的主键进行序列增加之后可以在数据库层面自动主键id增长

    方法如下:先建序列,然后建表关联id主键,然后添加语句,不用考虑id主键

    DROP SEQUENCE
    IF EXISTS "public"."sp_warehouse_id_seq";
    
    CREATE SEQUENCE "public"."sp_warehouse_id_seq" INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
    
    DROP TABLE
    IF EXISTS "public"."sp_warehouse";
    
    CREATE TABLE "public"."sp_warehouse" (
    "id" NUMERIC (10) DEFAULT nextval(
    'sp_sn_main_id_seq' :: regclass
    ) NOT NULL,
    "whid" VARCHAR (20) COLLATE "default",
    "whname" VARCHAR (50) COLLATE "default",
    "province" VARCHAR (20) COLLATE "default",
    "city" VARCHAR (20) COLLATE "default",
    "district" CHAR (20) COLLATE "default",
    "addr" TEXT COLLATE "default"
    ) WITH (OIDS = FALSE);
    
    INSERT INTO "public"."sp_warehouse" (
    
    "whid",
    "whname",
    "province",
    "city",
    "district",
    "addr"
    )
    VALUES
    (
    'whid1',
    'ads',
    'dsf',
    'sdf',
    'dsf ',
    'sdf'
    );
    
     

    不用序列的话可以在sql中id部分加一句子查询,例如:

    <insert id="insertSelective" parameterType="java.util.Map">
    
            INSERT INTO sp_sn_main
            <trim prefix="(" suffix=")" suffixOverrides=",">
            snmasterid,
                <if test="snnumber != null">
                    snnumber,
                </if>
                <if test="whid != null">
                    whid,
                </if>
                <if test="itemnumber != null">
                    itemnumber,
                </if>
                <if test="inboundnumber != null">
                    inboundnumber,
                </if>
                <if test="outboundnumber != null">
                    outboundnumber,
                </if>
                <if test="inbounddate != null">
                    inbounddate,
                </if>
                <if test="outbounddate != null">
                    outbounddate,
                </if>
                <if test="employeeid != null">
                    employeeid,
                </if>
                <if test="status != null">
                    status,
                </if>
    
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides=",">
            
            (
                (
                    SELECT
                        MAX (snmasterid)
                    FROM
                        sp_sn_main
                ) + 1
            ),
                <if test="snnumber != null">
                    #{snnumber,jdbcType=VARCHAR},
                </if>
                <if test="whid != null">
                    #{whid,jdbcType=VARCHAR},
                </if>
                <if test="itemnumber != null">
                    #{itemnumber,jdbcType=VARCHAR},
                </if>
                <if test="inboundnumber != null">
                    #{inboundnumber,jdbcType=VARCHAR},
                </if>
                <if test="outboundnumber != null">
                    #{outboundnumber,jdbcType=VARCHAR},
                </if>
                <if test="inbounddate != null">
                    #{inbounddate,jdbcType=DATE},
                </if>
                <if test="outbounddate != null">
                    #{outbounddate,jdbcType=DATE},
                </if>
                <if test="employeeid != null">
                    #{employeeid,jdbcType=VARCHAR},
                </if>
                <if test="status != null">
                    #{status,jdbcType=VARCHAR},
                </if>
    
            </trim>
        </insert>
  • 相关阅读:
    达梦加快表字段DDL
    安装Kibana
    达梦主从部署1主2从(主库需要停机)
    使用clone.pl脚本拷贝原库的软件到新的目的库
    达梦执行存储过程
    主库备份后异机进行恢复
    如何查看redis使用那个配置文件启动
    postgresql大表加字段
    Centos7 安装oracle瘦客户端
    达梦备份和恢复
  • 原文地址:https://www.cnblogs.com/dflmg/p/6641183.html
Copyright © 2020-2023  润新知