У меня проблема, над которой я ломал голову последние несколько дней. У меня есть реляционная БД (mariaDB), в которой есть две таблицы. Таблица A и таблица B. Таблица A имеет отношение к самой себе, и когда одна строка удаляется, несколько МОГУТ быть удалены (с помощью CASCADE удаления). Таблица B не имеет отношения к таблице A. Я не могу создать связь, так как строки, которые в настоящее время присутствуют в таблицах, могут иметь или не иметь правильные (для обеспечения соблюдения этой связи) данные в ней (я не могу на это повлиять).
Когда я удаляю запись из таблицы A, я хочу, чтобы неявно связанные данные из таблицы B также были удалены. Поскольку внешний ключ не может быть создан, удаление CASCADE кажется невозможным. Я подумал о триггере, который будет находить соответствующие строки при каждом удалении из таблицы A, однако триггеры не будут срабатывать для строк, удаленных с помощью CASCADE удаления. Это означает, что когда строка X (из таблицы A) удаляется в результате CASCADE, соответствующие данные из таблицы B не будут удалены.
Если бы мне пришлось резюмировать это до вопроса: возможно ли удалить строку, как при удалении CASCADE, без использования внешних ключей или триггеров?
Спасибо за чтение, цените это!