Существует родительская таблица (MAIN_TABLE
), и необходимо выполнить несколько вставок в дочернюю таблицу (CHILD_TABLE
) для различных типов (TYPE_1 / TYPE_2 / TYPE_3 и т. Д.).То есть для записи с одним родителем у меня будет три дочерних, если есть три типа.
WITH MAIN_TABLE AS
(
SELECT 100 AS ID,'RICK' AS NAME,5 AS LINE FROM DUAL
UNION ALL
SELECT 101 AS ID,'TOM' AS NAME,6 AS LINE FROM DUAL
)
SELECT * FROM MAIN_TABLE;
ID NAME LINE
---------- -------------------- ----------
100 RICK 5
101 TOM 6
2 rows selected.
Нужно вставить родительскую запись в дочернюю таблицу, где для строки column
она должна быть заполнена в возрастающейorder.
INSERT ALL
INTO CHILD_TABLE(ID, NAME, LINE, TYPE)
VALUES (ID, NAME, LINE, 'TYPE_1')
INTO CHILD_TABLE(ID, NAME, LINE, TYPE)
VALUES (ID, NAME, LINE, 'TYPE_2')
INTO CHILD_TABLE(ID, NAME, LINE, TYPE)
VALUES (ID, NAME, LINE, 'TYPE_3')
INTO CHILD_TABLE(ID, NAME, LINE, TYPE)
VALUES (ID, NAME, LINE, 'TYPE_4')
SELECT ID, NAME, LINE
FROM MAIN_TABLE;
SQL> SELECT * FROM CHILD_TABLE
100 RICK 5 TYPE_1
101 TOM 6 TYPE_1
100 RICK 5 TYPE_2
101 TOM 6 TYPE_2
100 RICK 5 TYPE_3
101 TOM 6 TYPE_3
100 RICK 5 TYPE_4
101 TOM 6 TYPE_4
8 rows selected.
Здесь, вместо 5,6 в качестве строки, мне нужно 5,6,7,8,9,10,11,12.Как это сделать?
Примечание: 1. Я не могу создать последовательность 2. Нет нескольких отдельных операторов вставки, если это возможно.