oralce里面有一个问题,在做采购单模块时,遇到如下问题:
所以我们要解决这个问题:
第一步:
并发生成方式:
sequence的并发生成方式同非并发生成方式都需要建立sequence表,如下:
一:创建SEQUENCE表:
DROP TABLE
IF EXISTS sequence;
CREATE TABLE
sequence
(
name VARCHAR(50) NOT NULL,
current_value BIGINT NOT NULL,
increment INT NOT NULL DEFAULT 1,
PRIMARY KEY (name)
)
ENGINE=InnoDB;
插入定义的序列:
INSERT INTO sequence VALUES ('SEQ_TRZ_MEMBER_NO',10000000000,1);
第二步:
select seq('SEQ_TRZ_MEMBER_NO')
效果:
最终的修改:
<select id="getYycgdBm" parameterType="string" resultType="string" >
<!-- oracle的写法 -->
<!-- select '${value}'||yycgdbm${value}.nextval bm from dual -->
<!-- mysql的写法 -->
select concat('${value}',seq('SEQ_TRZ_MEMBER_NO')) from dual
</select>
这样一来就解决了mysql转oracle的nextval的问题。