У меня есть 2 таблицы, которые мне нужно записать в одной транзакции на основе условия NOT EXISTS.
Таблица A - a (pk) b c
Таблица B - x (pk) yz
SET autocommit = OFF;
START TRANSACTION;
**// STEP 1**
INSERT INTO A (b,c)
SELECT r.* FROM
(SELECT 'b' br, 'c' cr FROM dual) r
WHERE
NOT EXISTS
(select 1 from A where c = cr);
**// STEP 2**
INSERT INTO B (y,z)
SELECT r.* FROM
(SELECT 'y' yr, 'z' zr FROM dual) r
WHERE
NOT EXISTS
(select 1 from A where c = zr);
**// STEP 3**
COMMIT;
Как я могу гарантировать, что после STEP2, но до STEP3 (commit), не будет никаких новых вставок в A, которые могут привести к нарушению условной записи в STEP1 и STEP2 .