【发布时间】:2013-09-26 06:29:01
【问题描述】:
假设我有包含 A、B、C、D、E、F 列的表 T
A 是自增主键
我有一些数据
我想复制 B=x 的所有数据
我想将数据复制到同一个表,但同时将集合 A 复制为 null(因此它可以创建新的 ID)并将 B 更改为 y。
示例:
A,B,C,D,E,F
1,1,9,8,3,9
2,1,0,3,2,2
3,1,7,1,1,8
4,2,5,4,7,5
5,2,6,5,8,4
6,3,9,4,5,3
x = 2, y = 4
结果:
A,B,C,D,E,F
1,1,9,8,3,9
2,1,0,3,2,2
3,1,7,1,1,8
4,2,5,4,7,5
5,2,6,5,8,4
6,3,9,4,5,3
7,4,5,4,7,5
8,4,6,5,8,4
我找到了一个解决方案
创建表 Temp as select * from T where B = x
那么
更新 T 集 A = null, B = y
然后插入 T select * from Temp
然后删除表温度
我没有测试,但它应该可以工作,但是有没有更简单的方法或者可以将它写在一个查询中?
【问题讨论】:
-
解决方案不属于问题;为它创建一个答案。