2

列 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  

私は1つの解決策を見つけました
Create table Temp as select * from T where B = x
その後、
Tを更新 set A = null, B = y
その後 Tに挿入 select * from Temp
その後、テーブルの一時を削除

私はテストしませんでしたが、うまくいくはずですが、もっと簡単な方法はありますか、それとも単一のクエリで記述できますか?

4

1 に答える 1