插入记录sql

时间:2016-12-14 10:35:08

标签: sql select insert

有多条记录

例如:

   ID Name subject   cindex
    1   abc   mat      45
    2   jjj   scie     45
    3   kkk   geom     45  
    4   sdf   eng      45
    5   idf   law      45

现在我想插入相同的记录,但使用不同的cindex。我试过这个:

insert into b_table (ID,name,subject,cindex) values (+1,NULL,NULL,90)
select name,subject from b_table where cindex=45 

此处ID不是自动增量列。我尝试使用+1 ..现在我认为这个查询不正确,那么如何选择记录并插入不同cindex的相同记录?

2 个答案:

答案 0 :(得分:1)

如果它自动增量,请不要在ID列中插入任何内容,请使用:

insert into b_table (id,name,subject,cindex)
select (SELECT max(id) FROM b_table) + id,name,subject,90 from b_table where cindex=45 

编辑:为了澄清您在评论中提出的问题,请以此表格为例:

ID, NAME
1    super
2    sagi
3    josh

SELECT id, name , 'bla bla bla' as constant_string, 45 constant_number
FROM Table

将输出以下内容:

ID,name,constant_string,constant_number
1  super    'bla bla bla'   45
2  sagi     'bla bla bla'   45
3  josh     'bla bla bla'   45

当您选择字符串或数字时,不会从实际表格数据中选择它们。它们是作为一个恒定值产生的,并附加了#34;对你的数据。

答案 1 :(得分:1)

有一个子查询返回表的最大ID。将该值添加到每个选定的ID。

insert into b_table (ID,name,subject,cindex)
  select id + (select max(id) from b_table), Name, subject, 90
  from b_table where cindex = 45