あるテーブルから別のテーブルにデータを転送しようとしています。しかし、私は何か余分なことをする必要があるプロセスでは、SQLやPL/SQLだけでこれを行うことが可能かどうか疑問に思っています。INSERT SELECTループ
source target
------------------- ------------------------
| id | name | qty | | id | source_id | qty |
------------------- ------------------------
| 1 | test | 2 | | 1 | 1 | 1 |
------------------- ------------------------
| 2 | ago | 1 | | 2 | 1 | 1 |
------------------- ------------------------
| 3 | 2 | 1 |
-----------------------
ここでソーステーブルの数量に基づいて、複数のレコードを挿入する必要があります。数量は任意の数にすることができます。ターゲット表のIDは自動的に増分されます。私はこの
INSERT INTO target (SELECT id, qty FROM source);
を試してみました。しかし、これは数量ループの世話をしていません。
私はあなたがそれを達成するためにPL/SQLを必要とするだろうと思うだろうが、私はまたあなたの主キーが新しいテーブルの上がどうなるか疑問に思います。 – topshot
PL/SQLは、ターゲット表のIDも自動インクリメントです。私は質問で更新しました。 idが自動生成された場合 – nicholasnet
だから、どのようにSOURCE_ID年代を順になりますことを確認する予定ですか?あなたが本当にちょうどSOURCE_IDと数量を生成する必要がある、と彼らはtarget' '内の任意の(新しい)IDを割り当てることができます - または無関係ということでしょうか? – mathguy