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>
  • 相关阅读:
    C#多线程下更新UI的几种方法
    .net WebApi使用swagger 美化接口文档
    C#内存管理
    LINQ 推迟查询的执行
    C#多播委托详解
    泛型委托
    使用 ref 和 out 传递数组注意事项
    何时使用委托而不使用接口
    委托中的协变和逆变
    细说SQL Server数据类型
  • 原文地址:https://www.cnblogs.com/dflmg/p/6641183.html
Copyright © 2011-2022 走看看