次の表があります。
私は、行 ID の例 5 を取り込んで、それを ID 6 の新しい行に複製する手順に取り組んでいます。 、9 から 10 および 10 から 11 です。
これを行う最良の方法は何ですか?
私はSQL操作についてまったく無知なので、どんな助けでも大歓迎です。
ID が常に連続していると仮定するとUPDATE
、 new を実行する前にテーブルに移動する必要がありますINSERT
。
UPDATE YourTable
SET ID = ID + 1
WHERE ID >= 6
次に、ステートメントを実行してINSERT
行 5 を複製できます。
そうは言っても、これの目的は何ですか?テーブルのデザインを再考する方が理にかなっているかもしれません。
編集 - 挿入も行う必要がある場合
も実行する必要がある場合はINSERT
、次を使用して動作するはずINSERT INTO
です。
INSERT INTO YourTable
SELECT 6, NextCol, NextCol, ...
FROM YourTable
WHERE ID = 5
基本的に、各列を指定する必要があります。繰り返しますが、 を実行した後にこれを実行してUPDATE
ください。このフィールドに ID がある場合、これは必ずしも機能するとは限りません。テーブル構造によって異なります。
挿入を探しているのか更新を探しているのか、質問は少し不明です。挿入の場合、を使用して以下のようなことができますcross join
:
insert into YourTable (ID, SupplierId, Title,...)
select MyID, SupplierId, Title, ...
from YourTable cross join (values (6),(7),(8),(9),(10),(11))
AS temp(MyId)
where YourTable.ID = 5
ID が自動インクリメント フィールドの場合、フィールド リストから ID と MyID を削除します。