mybatis里的xml中的写添加的sql语句,怎么使用oracle数据库的序列
展开全部
-- Oracle SEQUENCE 序列语法:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
示例:
CREATE SEQUENCE sq_test -- 序列名
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
MAXVALUE 9999999 -- 最大值9999999
NOCYCLE -- 一直累加,不循环
NOCACHE;
SELECT sq_test.NEXTVAL FROM DUAL;
可以使用sequence的地方:
-- 不包含子查询、snapshot、VIEW的 SELECT 语句
-- INSERT语句的子查询中
-- NSERT语句的VALUES中
-- UPDATE 的 SET中
可以看如下例子:
INSERT INTO table_name VALUES (sq_test.nextval, 'CLERK',1200, SYSDATE);
展开全部
<insert id="add" parameterType="xxxxx" useGeneratedKeys="true" keyProperty="id">
<selectKey resultType="int" order="BEFORE" keyProperty="id">
select seq_pid.nextval from dual
</selectKey>
insert into myuser values(#{id},#{name},#{sex},#{age})
</insert>
配置一个selectKey :useGeneratedKeys是否使用自增列,keyProperty哪一个列,order里的before是先选择主键再执行插入语句(oracle必须选择before)
<selectKey resultType="int" order="BEFORE" keyProperty="id">
select seq_pid.nextval from dual
</selectKey>
insert into myuser values(#{id},#{name},#{sex},#{age})
</insert>
配置一个selectKey :useGeneratedKeys是否使用自增列,keyProperty哪一个列,order里的before是先选择主键再执行插入语句(oracle必须选择before)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询