>[оверквотинг удален] > INSERT INTO test2(fam,pnum) (SELECT fam,pnum FROM test1 WHERE id =334);/*из test1 копируем > строку в test2*/ > DELETE FROM test2 WHERE pnum=11;/*удаляем копируемую строку*/ > UPDATE test2 SET location='arhiv' WHERE pnum=11;/*пытаемся обновить несуществующую строку*/ > INSERT INTO test2(fam,pnum) (SELECT fam,pnum FROM test1 WHERE id =334);/*снова вставляем > данную строку*/ > COMMIT; > SELECT * FROM test2 WHERE pnum=11; > Не могу понять почему транзакция не отменяет изменения если в одном из > запросов ошибка?Я давно работал с SQL, но возникает вопрос, почему Вы "не нахождение по WHERE" считаете за ошибку? Это нулевая выборка, которая может вовсе и не рассматриваться как ошибка.
|