急!如何使用SQL语句在复制多行数据时实现主键递增?

我使用的是Oracle数据库,举个例子:
table1:
列名:ID,name,age 其中ID为主键,5位,char型
数据:
0001 张三 20
0002 李四 21
……
0012 王五 19
想要复制一遍,数据不动,主键递增,变成:
0001 张三 20
0002 李四 21
……
0012 王五 19
0013 张三 20
0014 李四 21
……
0024 王五 19
我查了下一般这样写:
insert into table1(ID,name,age)
select 递增,name,age from table1
问题是这个“递增”怎么写啊?
解决加分!
麻烦写一下具体语句,我不懂。。。-_-b平时不是我搞数据库,这是赶鸭子上架没办法
---------------
c5net你的写法有点问题吧~比如第一组数据“0001 张三 20”的ID经过to_char(id+1,'0000')一变就成了0002,冲突了,应该是取最大的ID开始递增吧

你没说清楚是从最大值递增,改一下:
insert into table1(ID,name,age)
select to_char(id+(select max(id from table1)),'0000'),name,age from table1
这样就可以了
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-08-29
oracle里面一般呢习惯用序列来让主键自增。
create sequence s_id
start with 1 increment 1 nocycle;

这样一个序列建立好以后再插入主键的时候这样:
insert into table_name(id) values(s_id.nextval)
--仅仅是哪id一个字段作为例子,可以多个字段同时插入
第2个回答  2008-08-29
insert into table1 (id,name,age)
select trim(to_char(table1.id + t.num,'0000')),table1.name,table1.age from (select to_number(max(id)) num from table1) t,table1 ;
commit ;
你可以连续执行几次,发现那张表爆了。o(∩_∩)o...
第3个回答  2008-08-29
这也是一种解决办法。
把你的数据导出到Excel中,
然后复制多次,知到你觉得够为止,
再把第一列值从第一行点右键向下拉,
这一列的值会自动+1,然后再把这些数据导入到那个表中。
第4个回答  2008-08-29
order by ID

急!如何使用SQL语句在复制多行数据时实现主键递增?
你没说清楚是从最大值递增,改一下:insert into table1(ID,name,age)select to_char(id+(select max(id from table1)),'0000'),name,age from table1 这样就可以了

sql数据库如何设置主键自增长
1、打开数据库客户端,点击连接上你的数据库。2、在对应的库上,点击展开表视图。3、右键点击要设置的表,点击‘表设计’4、打开表设计页面,点击选中主键字段。5、点击后,在下方就会出现这个字段的设置,点击勾选上‘Auto Increment’就行了,这个就是自增长的属性。

SQL如何实现主键数字自动增加?(SQLSERVER)
identity(1,1)就是自动增加,第一个参数是种子值,第二个是增量值;primary key是主键 \/

数据库如何设置主键(ID)自动增长啊(SQL语句)?
在创建表的时候可以设置,方法如下,用一下sql语句。create table tableName(id int identity(1,1) primary key,data varchar(50))解释:其中identity(1,1)代表自增,第一个1代表从1开始计数,第二个1代表每次增长1。

sql语句怎么实现数据递增?
以sqlserver为例,按照你的要求,先有如下一张表,里面有相关的数据,所以可以采用alter table表名 add 列名 类型 约束。。如下:create table test(name varchar(10),sex char(1),profession varchar(15))alter table test add id int identity check(id>1 and id<9999)其中 identity 说明是自增 ...

怎么用SQL语句CREATE TABLE的主键为“自动增加”
自动递增:AUTO_INCREMENT 例子:主键自增:CREATE TABLE test(id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(15) NOT NULL)AUTO_INCREMENT = 100;上面的test表,主键id为自动递增的

sql语句主键自动添加的问题
如果在数据库中,id为主键,且是自动增长,就不需要管他。直接这样就可以了。String sql="insert into '表名'(name,age) values(?,?)";如果不是自动增长,建议你把数据库里的表的这个字段alert为自动增长的。用关键字identity就可以。因为一般情况下,id都不需要使用的。如果绑定到一些页面的...

插入SQL语句,主键递增怎么写?
decalare @max int select @max=isnull(id,0) from users set @max=@max+1

sql语句 如何添加自增长主键
第一步:创建sequence;create sequence test_seq increment by 1 start with 4 maxvalue 1800 minvalue 4 cache 4;解释:创建名为test_seq的sequence,从4开始,每次增加1,最大值是1800,最小值是4,cache 4 表示会缓存四个序列号,比如4、 5、 6、 7。第二步:sql语句插入,每次插入一次就会...

sql 同一表下复制行 在一个表A内,比如ID是主键且会自动增长,
2个关键点 1新增的ID号= SELECT MAX(ID)+1 FROM 表名称 2插入自动增量字段 SET IDENTITY_INSERT 表名称 ON insert into...SET IDENTITY_INSERT 表名称 OFF

相似回答