萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql 數據不存在就插入 否則就更新數據

mysql 數據不存在就插入 否則就更新數據

下面來看一個mysql 數據不存在就插入 否則就更新數據的例子,希望例子能幫助到各位同學哦。

有2種方法:

 代碼如下 復制代碼

insert ignore into {$this->getTable(‘core_config_data’)} (scope,scope_id,path,value) values (‘default’,0,’dev/debug/template_hints’,0);

注:如果使用的是insert into 發現重復的會報錯,而insert ignore into 發現將要插入的數據行中包含唯一索引的字段值已存在,會丟棄掉這行數據,不做任何處理

 代碼如下 復制代碼

replace into {$this->getTable(‘core_config_data’)}(scope,scope_id,path,value) values(‘default’,0,’dev/debug/template_hints’,0);

注:REPLACE發現重復的先刪除再插入,如果記錄有多個字段,在插入的時候如果有的字段沒有賦值,那麼新插入的記錄這些字段為空,所以為了更好的解決這個問題,我們可以進入一些操作

 代碼如下 復制代碼

/如果不存在,則插入新數據
$sql = “INSERT INTO {$ecs->table(‘cat_lang’)} (cat_id,lang_id,cat_name,keywords,cat_desc)
VALUES({$cat_id},{$k},’{$val['cat_name']}’,'{$val['keywords']}’,'{$val['cat_desc']}’)
ON DUPLICATE KEY UPDATE cat_name=’{$val['cat_name']}’,cat_desc=’{$val['cat_desc']}’,keywords=’{$val['cat_desc']}’”;

這裡要注意的是:必須表主鍵唯一 。這裡,這裡我采用的是 分類id和語言id雙主鍵機制。

具體sql如:

 代碼如下 復制代碼

INSERT INTO TABLE (a,b,c)
VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
UPDATE TABLE SET c=c+1 WHERE a=1;

key為唯一鍵或者主鍵

copyright © 萬盛學電腦網 all rights reserved