Fügt einer Tabelle eine neue Zeile hinzu.
virtual int write_row
( |
buf) ; |
byte * | buf ; |
Dies ist die Methode write_row
.
write_row()
fügt eine Zeile ein.
Gegenwärtig wird bei Massenladeoperationen kein
extra()
-Hinweis
gegeben. buf
ist ein Byte-Array mit Daten
und hat die Länge table->s->reclength
Mithilfe der Feldinformationen können Sie die Daten aus dem nativen Byte-Array-Typ extrahieren, zum Beispiel wie in: for (Field **field=table->field ; *field ; field++) { ... }.
BLOBs erfordern eine Sonderbehandlung:
for (ptr= table->s->blob_field, end= ptr + table->s->blob_fields ; ptr != end ; ptr++) { char *data_ptr; uint32 size= ((Field_blob*)table->field[*ptr])->get_length(); ((Field_blob*)table->field[*ptr])->get_ptr(&data_ptr); ... }
In ha_tina.cc
wird gezeigt, wie alle Daten
als Strings extrahiert werden. In
ha_berkeley.cc
finden Sie ein Beispiel, wie
die Daten intakt gespeichert werden, indem man sie für den
Berkeley-eigenen nativen Speichermechanismus "verpackt".
Siehe Hinweis zu update_row()
über
auto_increments
und
timestamps
. Dieser Fall lässt sich auch auf
write_row()
übertragen.
Wird von item_sum.cc
,
item_sum.cc
, sql_acl.cc
,
sql_insert.cc
,
sql_insert.cc
,
sql_select.cc
,
sql_table.cc
, sql_udf.cc
und sql_update.cc
verwendet.
buf
- Ein Byte-Array mit Daten
Keine Rückgabewerte.
(kein Beispiel verfügbar)
{ return HA_ERR_WRONG_COMMAND; }
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.