这个问题在这里已有答案:
我有以下表格:
表格1:
doc_id | item_id
------ | ------
71 | 4
------ | ------
75 | 8
------ | ------
75 | 3
------ | ------
75 | 2
------ | ------
73 | 7
表2:
id | parent_id | parameter_id
------ | -----------|-------------
1 | 4 | 4
------ | -----------|-------------
2 | 8 | 3
------ | -----------|-------------
3 | 3 | 4
------ | -----------|------------
4 | 2 | 6
------ | -----------|------------
5 | 7 | 4
我想通过以下步骤在表2上插入行:
-
从Table1中选择item_id,其中document_id = 75;
-
对于来自1的每个item_id,检查Table2中是否存在记录,其中Table2的parent_id =表1的item_id且parameter_id = 4;
-
如果记录不存在,则输入数据 .
插入时应插入表2中的值(max(id)1,该特定记录的parent_id(关联的Table1的item_id),4作为parameter_id) .
我该怎么做呢?有人能给我一些暗示吗?我想使用游标并循环遍历它并检查记录是否存在 . 然后相应地插入数据?
DECLARE CURSOR C1
IS
SELECT * FROM table 1
WHERE DOC_ID = 75;
BEGIN
FOR EACH_RECORD IN C1 LOOP
// check for Table 2 for EACH_RECORD.CONFIG_ITEM_ID;
END LOOP;
END;
/
1 回答
上面的插入查询是
table2
从table1
插入max(id) +1, item_id
,而parameter_id
是doc_id
,其中doc_id
是75,而table2
中的记录不存在table1.item_id = table2.parent_id