在MySQL如果添加一条数据,如果存在就修改,如果不存在就添加
他的用法和insert into 一模一样,
insert into(a,b,c) values(1,2,3)
replace into(a,b,c) values(1,2,3)
作用:
insert into 添加数据时,如果不存在就添加,如果存在就报错
replace into 添加数据时,如果不存在就添加,如果存在就修改。他这里判断相同是根据唯一索引来判断的。
他的用法时在insert into中间 加一个关键字 ignore得到
insert ignore into(a,b,c) values(1,2,3)
同样是根据唯一索引来判断是否相同,如果相同忽略掉,如果不同进行修改
duplicate : 重复的
on duplicate key update : 存在重复的key就修改
用法:
insert into(a,b,c) values(1,2,3)
on duplicate key update
a=11,b=22,c=33
语句理解: 假设a是唯一索引,如果数据库表存在a=1 的数据对象,就进行修改操作(a=11,b=22,c=33)
如果不存在a=1的数据条,就将(a=1,b=2,c=3) 添加进去。
on duplicate key update 后面跟上的第一个字段 必须是 唯一索引
<insert id="updateBatch" parameterType="com.obei.ego.server.common.exchange.persistence.entities.Exchange">
INSERT INTO T_SYS_EXCHANGE (
CURRENCY_TYPE
, CURRENCY_CODE
, BANKCONVERSIONPRI
, ISSUE_DATE
, REMARK
, LANG_VER
, STATUS
, MARKET_ID
, ALIVE_FLAG
, EXTEND1
, EXTEND2
, EXTEND3
, EXTEND4
, EXTEND5
, EXTEND6
, EXTEND7
, EXTEND8
, EXTEND9
, EXTEND10
, CREATE_USER
, CREATE_USER_NAME
, CREATE_DATE
, UPDATE_USER
, UPDATE_USER_NAME
, UPDATE_DATE
, VERSION
)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(
#{item.currencyType}
, #{item.currencyCode}
, #{item.bankconversionpri}
, #{item.issueDate}
, #{item.remark}
, #{item.langVer}
, #{item.status}
, #{item.marketId}
, '1'
, #{item.extend1}
, #{item.extend2}
, #{item.extend3}
, #{item.extend4}
, #{item.extend5}
, #{item.extend6}
, #{item.extend7}
, #{item.extend8}
, #{item.extend9}
, #{item.extend10}
, #{item.createUser}
, #{item.createUserName}
, #{item.createDate}
, #{item.updateUser}
, #{item.updateUserName}
, #{item.updateDate}
, 1
)
</foreach>
ON DUPLICATE KEY UPDATE
CURRENCY_TYPE=values(CURRENCY_TYPE)
, CURRENCY_CODE=values(CURRENCY_CODE)
, BANKCONVERSIONPRI=values(BANKCONVERSIONPRI)
, ISSUE_DATE=values(ISSUE_DATE)
, REMARK=values(REMARK)
, LANG_VER=values(LANG_VER)
, STATUS=values(STATUS)
, MARKET_ID=values(MARKET_ID)
, ALIVE_FLAG=values(ALIVE_FLAG)
, EXTEND1=values(EXTEND1)
, EXTEND2=values(EXTEND2)
, EXTEND3=values(EXTEND3)
, EXTEND4=values(EXTEND4)
, EXTEND5=values(EXTEND5)
, EXTEND6=values(EXTEND6)
, EXTEND7=values(EXTEND7)
, EXTEND8=values(EXTEND8)
, EXTEND9=values(EXTEND9)
, EXTEND10=values(EXTEND10)
, CREATE_USER=values(CREATE_USER)
, CREATE_USER_NAME=values(CREATE_USER_NAME)
, CREATE_DATE=values(CREATE_DATE)
, UPDATE_USER=values(UPDATE_USER)
, UPDATE_USER_NAME=values(UPDATE_USER_NAME)
, UPDATE_DATE=values(UPDATE_DATE),
VERSION=(VERSION+1)
</insert>