Während SQL-Abfragen mit Joins, muss ich Transaktionen verwenden?Benötige ich eine Transaktion für die verbundene Abfrage?
ich über so etwas wie dachte:
Delete table1, table2, table3
FROM table1 INNER JOIN table2 ON(...)
LEFT JOIN table3 ON (...)
WHERE table1.column = something...
(ich weiß nicht, ob die Syntax 100% korrekt ist, aber ich denke, dass Sie es trotzdem verstehen)
Gibt es ein Risiko, dass nicht alle Zeilen, die gelöscht werden sollen, werden nicht gelöscht?
Danke!
Dies gilt nur für Anweisungen, die sich auf InnoDB-Tabellen auswirken. Ein Löschen gegen z.B. Eine MyISAM-Tabelle ist ** nicht ** atomar und löscht möglicherweise nur die Hälfte der Tabellen. –
@a_horse_with_no_name - stimme zu, dies ist nur für ACID-Tabellen korrekt. Ich habe jedoch keine Erfahrung mit MyISAM-Tabellen, daher bin ich mir nicht sicher, ob Transaktionen in diesem Szenario helfen würden. – SWeko
@SWeko In einigen Fällen wird es nicht zurückgesetzt. In MySQL v5.1 sowieso (siehe: http://bugs.mysql.com/bug.php?id=45309) – mattytommo