Der MySQL Server verwendet für
      DELETE-Anweisungen denselben Ansatz wie für
      UPDATE-Anweisungen: Er geht mithilfe der
      Funktion rnd_next() zu der Zeile, die
      gelöscht werden soll, und ruft dann die Funktion
      delete_row()
      auf:
    
int ha_foo::delete_row(const byte *buf)
      Der Parameter *buf enthält den Inhalt der zu
      löschenden Zeile. Speicher-Engines ohne Indizierung können
      diesen Parameter ignorieren, aber Speicher-Engines mit
      Transaktionsunterstützung müssen die gelöschten Daten für ein
      späteres Rollback speichern.
    
      Das folgende Beispiel stammt von der
      CSV-Engine:
    
int ha_tina::delete_row(const byte * buf)
{
   DBUG_ENTER("ha_tina::delete_row");
   statistic_increment(table->in_use->status_var.ha_delete_count,
                       &LOCK_status);
 
   if (chain_append())
     DBUG_RETURN(-1);
  
   --records;
 
   DBUG_RETURN(0);
}
      Das Wichtige an diesem Beispiel sind die Aktualisierung der
      delete_count-Statistik und die Zeilenzählung.
    
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

