16.14.14. write_row

目的

为表添加新行。

概要

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.ccitem_sum.ccsql_acl.ccsql_insert.ccsql_insert.ccsql_select.ccsql_table.ccsql_udf.cc、以及sql_update.cc调用。

参数

  • 数据的buf字节数组

返回值

无返回值。

用法

          
        

默认实施

           { return  HA_ERR_WRONG_COMMAND; }
        
关注编程学问公众号