sql,如何在同一个表中复制一条记录?

我有一个表a,里面有很多个字段(id,b,c,d.....n)其中,id是主键.现在想在同一个表中复制一条记录,并改写其中一个字段(b)的值,如果这个记录已经存在,则不复制(用字段c来判断).假如,原始记录中,b=1,c=10.复制后的记录为b=2,而其他字段(id除外)的值不变.但是,如果已经存在b=2,c=10这一条记录,则不复制. 问sql表达式应该怎样写?

insert into a select id,'2',c,........ from a where b='1'and c='10'注意要改动什么值的话,只需将Select 查询改一下就可以了.如果iD是自动增长列,你就可以把它给去掉还有.一定要按顺序哟!
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-28
我有一个表a,里面有很多个字段(id,b,c,d.....n)其中,id是主键.现在想在同一个表中复制一条记录,并改写其中一个字段(b)的值,如果这个记录已经存在,则不复制(用字段c来判断). ------用字段C来判断什么?假如,原始记录中,b=1,c=10.复制后的记录为b=2,而其他字段(id除外)的值不变. -------------为什么b=2但是,如果已经存在b=2,c=10这一条记录,则不复制.问sql表达式应该怎样写?
第2个回答  2017-10-27
insert into tablename (这里列出除了ID的所有列) (select 这里列出除了ID的所有列 from tablename where id = 指定复制的ID)
第3个回答  2013-06-28
insert into a select 2,c,d...n from a where id=要复制的id and not exists(select * from a where b=2 and c=10)
第4个回答  2017-04-24
insert into good select NULL,a,b,c,d,e,f,g,h,i,j,k,l,m,n from good where id='复制的id';
其中NULL代表id占位
ABCD... 代表字段名.
相似回答