조인이있는 sql 쿼리 중에 트랜잭션을 사용해야합니까?가입 쿼리에 트랜잭션이 필요합니까?
내가 좋아하는 뭔가에 대해 생각했다 :
Delete table1, table2, table3
FROM table1 INNER JOIN table2 ON(...)
LEFT JOIN table3 ON (...)
WHERE table1.column = something...
이 (내가 구문이 100 % 정확한지 잘 모릅니다,하지만 난 당신이 어쨌든 그것을 이해 추측)
위험이 그 모든 있습니까 삭제해야 할 행이 삭제되지 않습니까?
감사합니다.
이것은 InnoDB 테이블에 영향을주는 문장에만 해당된다. 예 : MyISAM 테이블은 ** atomic이 아니며 테이블의 절반 만 삭제할 수 있습니다. –
@a_horse_with_no_name - 동의합니다. 이는 ACID 테이블에만 맞습니다. 그러나 MyISAM 테이블에 대한 경험이 없으므로 트랜잭션이 해당 시나리오에서 도움이되는지 확신 할 수 없습니다. – SWeko
@SWeko 경우에 따라 롤백되지 않습니다. 어쨌든 MySQL v5.1 (http://bugs.mysql.com/bug.php?id=45309 참조) – mattytommo