我在使用seq_t_user_info_id.nextval时,为什么会出现重复值呀?其中我创建seq_t_user_info_id的SQL 代码为:create sequence seq_t_user_info_id
minvalue 1
maxvalue 99999999999999999
start with 1
increment by 1
cache 20
order;但在执行下面的SQL时,报违反约束,其中我的User_id为主键,不能重复。insert INTO t_user_info(user_id,login_name)
SELECT
seq_t_user_info_id.nextval,substr(t.gsbm,1,2)||lpadseq_t_user_info_id.nextval,6,'0')
FROM at_t_user_info t
我这个语句有错吗?请大家帮忙看一下,谢谢了!!
minvalue 1
maxvalue 99999999999999999
start with 1
increment by 1
cache 20
order;但在执行下面的SQL时,报违反约束,其中我的User_id为主键,不能重复。insert INTO t_user_info(user_id,login_name)
SELECT
seq_t_user_info_id.nextval,substr(t.gsbm,1,2)||lpadseq_t_user_info_id.nextval,6,'0')
FROM at_t_user_info t
我这个语句有错吗?请大家帮忙看一下,谢谢了!!
Lpad`后面。
seq_t_user_info_id.nextval,substr(t.gsbm,1,2)||lpadseq_t_user_info_id.nextval,6,'0')
FROM at_t_user_info t这个纪录,选出了很多条记录吧。
SELECT
seq_t_user_info_id.nextval,substr(t.gsbm,1,2)||lpadseq_t_user_info_id.nextval,6,'0')
FROM at_t_user_info t这个纪录,选出了很多条记录吧。
为什么呢?我是想将at_t_user_info 临时表中的数据转到正式表t_user_info中呀!!
seq_t_user_info_id.nextval,substr(t.gsbm,1,2)||lpad(seq_t_user_info_id.nextval,6,'0')
FROM at_t_user_info t查询看看,正常情况下是seq.nextval是不会出现重复的,是不是原来表中存在手动插入或者手动修改的userid, 而这个useid正好和当前插入的重复
2. 下面的coding更清晰一点.select seq_t_user_info_id.nextval into a_var from dual;SELECT
a_var,substr(t.gsbm,1,2)||lpad(a_var,6,'0')
FROM at_t_user_info t
你这样的做法,a_var永远都是一个值,不错才怪。