zoukankan      html  css  js  c++  java
  • 【数据库_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>
  • 相关阅读:
    阿里云与物理服务器
    ## 100个网路基础知识##
    Linux 中vim编辑器
    Linux 目录结构及增删改查
    Linux 命令行常用快捷键
    XSS劫持cookie登录
    Tomcat
    centos 6.5 搭建DHCP实验
    centos 6.5 系统故障分析实验
    LVM的创建及管理
  • 原文地址:https://www.cnblogs.com/dflmg/p/6641183.html
Copyright © 2011-2022 走看看