新建序列

新建序列的语句
例:表warn_person加自增序列

--warn_person 表名
CREATE sequence seq_warn_person minvalue 1 --最小值
nomaxvalue --不设置最大值
START WITH 1 --1开始计数
INCREMENT BY 1 --每次加1个
nocycle --一直累加,不循环
nocache;--不建缓冲区

创建触发器 warn_person_sid_trigger

CREATE 
	OR REPLACE TRIGGER warn_person_sid_trigger before INSERT ON warn_person referencing old AS old new AS new FOR each ROW
BEGIN
	SELECT
		seq_warn_person.nextval INTO : new.PERSON_ID 
	FROM
		dual;

END warn_person_sid_trigger;

删除触发器 warn_person_sid_trigger

drop trigger tib_operationondata(warn_person_sid_trigger);

那么mabatis中怎么用呢?
如下,这样就能实现oracle自增了

    <!--新增所有列-->
    <insert id="insert" keyProperty="projectPersonId" useGeneratedKeys="true">
        <selectKey resultType="java.lang.Long" order="BEFORE" keyProperty="projectPersonId">
            SELECT SEQ_WARN_PROJECT_PERSON.nextval AS projectPersonId FROM DUAL
        </selectKey>
        INSERT INTO WARN_PROJECT_PERSON
        <trim prefix="(" suffix=")" suffixOverrides=",">
            PROJECT_PERSON_ID,
            <if test="personId != null">PERSON_ID,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            #{projectPersonId},
            <if test="personId != null">#{personId},</if>
        </trim>
    </insert>```

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐