zoukankan      html  css  js  c++  java
  • oracle表自增id序列及触发器

    对USER_T表的user_id字段增加自增序列

    创建自增序列:

    CREATE sequence USER_ID_SEQUENCE
    minvalue 1 --最小值
    maxvalue 9999999999 --不设置最大值
    START WITH 4100000001 --从4100000001开始计数
    INCREMENT BY 1 --每次加1
    NOCYCLE --一直累加,不循环
    NOCACHE; --不建缓冲区

    创建触发器:

    CREATE OR REPLACE TRIGGER USER_ID_TRIGGER BEFORE INSERT ON USER_T FOR EACH ROW WHEN(NEW.USER_ID IS NULL)
    BEGIN 
    SELECT USER_ID_SEQUENCE.NEXTVAL INTO:NEW.USER_ID FROM dual;
    END;

    mybatis插入USER_T时,自动返回user_id的处理:

    <insert id="insertUser" useGeneratedKeys="false" parameterType="cn.com.entity.User">
        <selectKey resultType="Long" order="BEFORE" keyProperty="userId">
            SELECT USER_ID_SEQUENCE.NEXTVAL as userId from DUAL
        </selectKey>
        insert into USER_T
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="userId != null">
                user_id,
            </if>
            <if test="userName != null">
                user_name,
            </if>
            <if test="updateTime!= null">
                update_time
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="userId != null">
                #{userId,jdbcType=BIGINT},
            </if>
            <if test="userName != null">
                #{userName,jdbcType=VARCHAR},
            </if>
            <if test="updateTime != null">
                sysdate
            </if>
        </trim>
    </insert>
    
    
    
  • 相关阅读:
    NYOJ135 取石子(二)
    NYOJ448 寻找最大数
    NYOJ20吝啬的国度
    NYOJ47过河问题
    NYOJ199无线网络覆盖
    NYOJ92图像有用区域
    NYOJ287Radar
    NYOJ71独木舟上的旅行
    NYOJ484The Famous Clock
    NYOJ148fibonacci数列(二)
  • 原文地址:https://www.cnblogs.com/bigfaceWei/p/13223221.html
Copyright © 2011-2022 走看看