oracle数据库主键自增并且返回主键值

一、创建序列

1.1、直接在PLSQL中设置
在这里插入图片描述
1.2、命令创建

create sequence seq_users   ##创建序列seq_users
increment by 1              ## 步长,每次加1
start with 1                ##从1开始
minvalue 1                  ##最小值
maxvalue 9999999            ##最大值
order                    ##确保按照请求次序生成整数 【不常用的设置】.只有在使用Real Application Cluster(RAC)时才可以使用Order选项设置.
cache 20               ##需要不需要使用缓存,就是一次生成多少个序列的值,如果生成了多个序列值,如果缓存中有数据, 就不需要查询缓存了
cycle;                 ##指定当序列即使已经达到序列自增的最大值或最小值时也继续生成整数. 当升序序列达到最大值时. 下一个生成的值为最小值即初始值. 当降序序列达到最小值时. 下一个生成的值最大值. 以这种规则来循环.
二、给指定表添加触发器
CREATE OR REPLACE TRIGGER "TEST_TRI" BEFORE

        INSERT ON  【表名】

        FOR EACH ROW       

BEGIN

          SELECT 【序列名】.NEXTVAL INTO :NEW.【主键】FROM DUAL;

        END;

【】里面的值根据自己数据库表实际内容填写,现在用sql写插值语句主键就可以自增了。

三、Oracle+Mybatis 中 插值并返回主键
 <insert id="addUser"  >
	<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="Id">
			SELECT 【序列名】.CURRVAL as id from DUAL
		</selectKey>
		insert into t_user (id,name) values (null,#{name,jdbcType=VARCHAR})
</insert>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值