yo,
Ist das nicht egal? Gelöscht ist gelöscht, egal ob einzeln oder in einen Rutsch.
ganz und gar nicht. TRUNCATE und DELETE mögen schnittmengen haben, aber tun letztlich zwei verschiedene dinge. ich habe zwar in beiden fällen eine leere tabelle mit gleichen namen, ich habe aber nicht mehr die gleiche tabelle. die mysql doku suggeriert da was, was so nicht stimmt, zumal in der deutschen übersetzung meiner meinung nach auch ein fehler drin ist.
dort steht: "Bei InnoDB-Tabellen wird TRUNCATE TABLE auf DELETE umgesetzt, sofern keine Fremdschlüssel-Constraints vorhanden sind, die die Tabelle referenzieren". das müsste aber genau umgekehrt sein.
hinzu kommt, dass bei einem TRUNCATE der autoincrement wert sich resetet, die meta daten sollten sich auch verändern, es wird ein impliziter commit ausgeführt (DDL Statement) und delete triggers nicht gefeuert. das es keinen rückegabewert der gelöschten datensätze gibt, ist wohl noch der kleineste unterschied. aber davon zu reden, es wäre das gleiche, dem will ich so nicht zustimmen. man muss da sehr genau klären, ob es das richtige ist.
Ilja