У меня есть родитель и таблица ребенка присоединились parent_id, и я хочу, чтобы удалить строки из обеих таблиц с использованием значения в дочерней таблицеDB2 для я SQL удаления строк в 2-х таблиц, соединенных внешним ключом, используя значение детского
это то, что я пытался и не работает
WITH
-- DELETE THE COSTS FIRST AND LET DB2 STORE THE IDs IN AN 'OLD TABLE'
DELETED_CHILD(ID) AS (SELECT PAYABLE_ID FROM OLD TABLE (
DELETE FROM MYLIB.MYCOST
WHERE KEY_VALUE = '1000000'
)
),
-- DELETE THE PAYABLE HEADER USING THE DELETED_LINK IDs
DELETED_PARENT(ID) AS (SELECT PAYABLE_ID FROM OLD TABLE (
DELETE FROM MYLIB.MYPAYABLE
WHERE PAYABLE_ID IN (SELECT DISTINCT ID FROM DELETED_CHILD)
)
)
(
-- SELECT IN WITH STATEMENT IS MANDATORY USELESS STATEMENT
SELECT * FROM SYSIBM.SYSDUMMY1
);
Ошибка я получаю
код ошибки -199, SQL состояние 42601: [SQL0199] Ключевое слово TABLE не ожидается. Действительные токены:) ЗАКЛЮЧИТЕЛЬНЫЙ СОЕДИНЕНИЕ ЗАКЛЮЧЕНИЯ.
Я хочу удалить всех детей за стоимость, а затем их родителей. Любая помощь приветствуется
Какую версию IBM я? _Данные изменения таблиц_ могут не поддерживаться в более старых версиях. – mustaccio
_data-change-table-reference_ разрешен в DB2 для i, начиная с версии 6.1, но только инструкции INSERT могут использоваться, по крайней мере, до IBM i 7.3. – user2338816
Я бегу на старом 7.1, каково решение? – user1500144