Wenn Ihre Speicher-Engine Lesefähigkeiten bekommen hat, ist als
      Nächstes die Unterstützung für
      INSERT-Anweisungen an der Reihe. Beherrscht
      Ihre Speicher-Engine INSERT, so kann sie auch
      mit WORM(write once, read many)-Anwendungen wie etwa dem
      Protokollieren und Archivieren von Daten zur späteren Analyse
      umgehen.
    
      Alle INSERT-Operationen werden von der Funktion
      write_row()
      erledigt:
    
int ha_foo::write_row(byte *buf)
      Der Parameter *buf enthält die einzufügende
      Zeile im internen Format von MySQL. Eine simple Speicher-Engine
      könnte einfach an das Ende der Datendatei gehen und den Inhalt
      des Puffers direkt dort anfügen (das würde auch das Lesen von
      Zeilen vereinfachen, da man die Zeile lesen und direkt an den
      Puffer-Parameter der Funktion rnd_next()
      übergeben könnte).
    
      Der Prozess zum Schreiben einer Zeile ist genau das Gegenteil vom
      Leseprozess: Er nimmt die Daten im internen Zeilenformat von MySQL
      und schreibt sie in die Datendatei. Das folgende Beispiel stammt
      von der Speicher-Engine MyISAM:
    
int ha_myisam::write_row(byte * buf)
{
  statistic_increment(table->in_use->status_var.ha_write_count,&LOCK_status);
  /* Zeitstempel-Spalte, falls vorhanden, auf die aktuelle Zeit setzen */
  if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
    table->timestamp_field->set_time();
 
  /*
    Wenn eine auto_increment-Spalte vorhanden ist und wir eine geänderte oder neue Zeile laden,
    muss der auto_increment-Wert im Datensatz aktualisiert werden.
  */
  if (table->next_number_field && buf == table->record[0])
    update_auto_increment();
  return mi_write(file,buf);
}
      Im obigen Beispiel sind drei Dinge bemerkenswert: Die
      Tabellenstatistik für Schreiboperationen wird aktualisiert, der
      Zeitstempel wird vor dem eigentlichen Schreibvorgang aktualisiert
      und die AUTO_INCREMENT-Werte werden
      hochgesetzt.
    
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.

