Я пытаюсь передать данные из одной таблицы в другую. Но в этом процессе мне нужно сделать что-то дополнительное, мне просто интересно, возможно ли сделать что-то подобное в SQL или PL/SQL.INSERT SELECT loop
source target
------------------- ------------------------
| id | name | qty | | id | source_id | qty |
------------------- ------------------------
| 1 | test | 2 | | 1 | 1 | 1 |
------------------- ------------------------
| 2 | ago | 1 | | 2 | 1 | 1 |
------------------- ------------------------
| 3 | 2 | 1 |
-----------------------
Здесь, исходя из количества в исходной таблице, мне нужно будет вставить несколько записей. Количество может быть любого числа. Идентификатор в целевой таблице автоматически увеличивается. Я пробовал это
INSERT INTO target (SELECT id, qty FROM source);
Но это не заботится о цикле qty.
Я думаю, вам понадобится PL/SQL для этого, но я также задаюсь вопросом, что ваш первичный ключ будет в новой таблице. – topshot
PL/SQL в порядке, а идентификатор в целевой таблице - автоматическое увеличение. Я обновил вопрос. – nicholasnet
Итак, если идентификатор сгенерирован автоматически, как вы планируете убедиться, что source_id будет в порядке? Или это не имеет значения - вам просто нужно генерировать source_id и qty, и им может быть назначен любой (новый) id в «target»? – mathguy