為存儲引擎添加對DELETE的支持 |
發布時間: 2012/8/23 16:48:36 |
MySQL服務器采用了與INSERT語句相同的方法來執行DELETE語句:服務器使用rnd_next()函數跳到要刪除的行,然后調用delete_row()函數刪除行。
int ha_foo::delete_row(const byte *buf)
*buf參數包含要刪除行的內容。對于大多數存儲引擎,該參數可被忽略,但事務性存儲引擎可能需要保存刪除的數據,以供回滾操作使用。 電腦知識www.boydavid.com 下述示例來自CSV存儲引擎:
int ha_tina::delete_row(const byte * buf)
{ 電腦知識www.boydavid.com
DBUG_ENTER("ha_tina::delete_row"); 電腦常識www.boydavid.com
statistic_increment(table->in_use->status_var.ha_delete_count, 電腦入門www.boydavid.com
&LOCK_status);
if (chain_append())
DBUG_RETURN(-1);
--records;
DBUG_RETURN(0);
}
前述示例的步驟是更新delete_count統計,并記錄計數。 本文出自:億恩科技【www.laynepeng.cn】 |