目的
为表添加新行。
概要
virtual int write_row ( | buf); |
byte * | buf ; |
描述
这是write_row方法。
write_row()用于插入行。目前,如果出现大量加载,不会给出任何extra()提示。buf是数据的字节数组,大小为table->s->reclength。
可以使用字段信息从本地字节数组类型提取数据。例如:
for (Field **field=table->field ; *field ; field++) { ... }
BLOB必须特殊处理:
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);
...
}
关于以字符串形式提取所有数据的示例,请参见ha_tina.cc。在ha_berkeley.cc中,对于ha_berkeley自己的本地存储类型,给出了一个通过“包装功能”完整保存它的例子。
请参见update_row()关于auto_increments和时间戳的注释。该情形也适用于write_row()。
从item_sum.cc、item_sum.cc、sql_acl.cc、sql_insert.cc、sql_insert.cc、sql_select.cc、sql_table.cc、sql_udf.cc、以及sql_update.cc调用。
参数
数据的buf字节数组
返回值
无返回值。
用法
默认实施
{ return HA_ERR_WRONG_COMMAND; }