mysql 無數據插入,有數據更新


mysql的語法與sql server有很多不同,sql server執行插入更新時可以update后使用if判斷返回的@@rowcount值,然后確定是否插入,mysql在語句中無法使用類似sql server的@@rowcount,但是有另外一些方式也能達到無數據插入,有數據更新的目的:

 

1、REPLACE相當於如果數據存在,先按主鍵刪除原記錄后再添加記錄新記錄,此方式會更新索引

 

REPLACE INTO t_param (param_name,param_value) 
select #{paramName}, #{paramValue}

 

2、ON DUPLICATE KEY UPDATE 先更新數據,如果數據不存在時進行insert

 

insert into t_param (param_name, param_value) values (#{paramName}, #{paramValue})
ON DUPLICATE KEY 
UPDATE param_name = #{paramName},param_value = #{paramValue}

 

3、判斷需要插入的數據是否存在,如果不存在時就插入,否則直接執行更新

 

INSERT INTO t_param (param_name,param_value) SELECT #{paramName},#{paramValue} FROM DUAL 
WHERE NOT EXISTS (SELECT param_value FROM t_param WHERE param_name = #{paramName});
UPDATE t_param SET param_value = #{paramValue} WHERE param_name = #{paramName}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM