存在..否則,我產生新的列ID,然後再試一次SQL這是更好的插入行,如果不是我目前使用下面的方法在表中插入一行時,一列不存在以前
$item_id = $this->misc_model->generateId(18);
while ($flag == false){
$this->db->where('item_id', $item_id);
$sql = $this->db->get($this->db->dbprefix('table'));
if ($sql->num_rows()){
$item_id = $this->misc_model->generateId(18);
}else{
$flag = true;
}
}
這樣做可以做得更快嗎?
IF NOT EXISTS(SELECT 1 FROM table WHERE item_id = $item_id)
INSERT INTO table (item_id) VALUES ($item_id)
也許創建唯一索引'ITEM_ID '並嘗試插入,直到你成功...理論上這可能需要永遠,並不是非常有效,但我認爲上述方法容易出現競爭條件... – Yaniro 2012-02-29 09:47:25