INSERT into ... on duplicate key update ...

INSERT  into exception_report_total (

waitFillOrders

,waitSendOrders

,changeOrders

,changeTotal

,waitProduceOrders

,wmsStockOrders

,erpStockOrders

,waitReserveOrders

,waitDispatchOrders

,addDispatchOrders

,waitCancel

,sendExceptions

,reserveOrders

,create_time

,carrier_id

,carrier_name

,dc_id

,dc_name

,org_id

,org_name

)

values

<foreach collection="list" item="item" index="index" separator="," >

(

#{item.waitFillOrders}

,#{item.waitSendOrders}

,#{item.changeOrders}

,#{item.changeTotal}

,#{item.waitProduceOrders}

,#{item.wmsStockOrders}

,#{item.erpStockOrders}

,#{item.waitReserveOrders}

,#{item.waitDispatchOrders}

,#{item.addDispatchOrders}

,#{item.waitCancel}

,#{item.sendExceptions}

,#{item.reserveOrders}

,now()

,#{item.carrier_id}

,#{item.carrier_name}

,#{item.dc_id}

,#{item.dc_name}

,#{item.org_id}

,#{item.org_name}

)

</foreach>

on duplicate key update

waitFillOrders = values(waitFillOrders),

waitSendOrders = values(waitSendOrders),

changeOrders = values(changeOrders),

changeTotal = values(changeTotal),

waitProduceOrders = values(waitProduceOrders),

wmsStockOrders = values(wmsStockOrders),

erpStockOrders = values(erpStockOrders),

waitReserveOrders = values(waitReserveOrders),

waitDispatchOrders = values(waitDispatchOrders),

addDispatchOrders = values(addDispatchOrders),

waitCancel = values(waitCancel),

sendExceptions = values(sendExceptions),

reserveOrders = values(reserveOrders)

时间: 2024-10-07 03:50:32

INSERT into ... on duplicate key update ...的相关文章

INSERT 中ON DUPLICATE KEY UPDATE的使用

使用场景,在做全国各省ip访问统计时要将sparkStreaming的数据存在mysql中,按照一般设计,id,province,counts,time,这样就需要每次清空表,但是如果多分区的话就存在删除表的时候回出现后一个分区可能把前一个分区的数据删除掉,当然最好的办法是每次都只更新而不删除,但是如果通过代码实现比较复杂. 此时我们需要的就是如果存在则更新,如果不存在则新增. 用redis的kv就可以很容易的实现.在MySQL中也有这样的功能.INSERT 中ON DUPLICATE KEY

【转】MySQL的Replace into 与Insert into on duplicate key update真正的不同之处

原文链接:http://www.jb51.net/article/47090.htm 今天听同事介绍oracle到mysql的数据migration,他用了Insert into ..... on duplicate key update ...,我当时就想怎么不用Replace呢,于是回来就仔细查了下,它们果然还是有区别的 看下面的例子吧: 1 Replace into ... 1.1 录入原始数据 mysql> use test; Database changed mysql>  mysq

insert into ... on duplicate key update 与 replace 区别

on duplicate key update:针对主健与唯一健,当插入值中的主健值与表中的主健值,若相同的主健值,就更新on duplicate key update 后面的指定的字段值,若没有相同主健值,就插入该记录 mysql> create table tab_test(fd1 int NOT NULL,fd2 varchar(50),primary key(fd1))engine=innodb; Query OK, 0 rows affected (0.22 sec) mysql>

INSERT ... ON DUPLICATE KEY UPDATE Syntax

If you specify ON DUPLICATE KEY UPDATE, and a row is inserted that would cause a duplicate value in a UNIQUE index or PRIMARY KEY, MySQL performs an UPDATE of the old row. For example, if column a is declared as UNIQUE and contains the value 1, the f

mysql ON DUPLICATE KEY UPDATE重复插入时更新

mysql当插入重复时更新的方法: 第一种方法: 示例一:插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: INSERT INTO clients (client_id,client_name,client_type) SELECT supplier_id,supplier_name,'advertising' FROM suppliers WHERE not exists(select * from clients where clients.c

mysql ON DUPLICATE KEY UPDATE、REPLACE INTO

INSERT INTO ON DUPLICATE KEY UPDATE 与 REPLACE INTO,两个命令可以处理重复键值问题,在实际上它之间有什么区别呢?前提条件是这个表必须有一个唯一索引或主键. 1.REPLACE发现重复的先删除再插入,如果记录有多个字段,在插入的时候如果有的字段没有赋值,那么新插入的记录这些字段为空.2.INSERT发现重复的是更新操作.在原有记录基础上,更新指定字段内容,其它字段内容保留. 这样REPLACE的操作成本要大于 insert  ON DUPLICATE

on duplicate key update之多列唯一索引

mysql处理存在则更新,不存在则插入(多列唯一索引) mysql处理存在则更新,不存在则插入(多列唯一索引) mysql处理某个唯一索引时存在则更新,不存在则插入的情况应该是很常见的,网上也有很多类似的文章,我今天就讲讲当这个唯一的索引是多列唯一索引时可能会遇到的问题和方法. 方法一: 使用 ? 1 INSERT INTO ON ... DUPLICATE KEY UPDATE ... : 表的创建如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 [sql] CREATE TA

MySQL使用on duplicate key update时导致主键不连续自增

使用on duplicate key update语法有时是很方便,但是会有一个影响:默认情况下,每次更新都会更新该表的自增主键ID,如果更新频率很快,会导致主键ID自增的很快,过段时间就超过数字类型的的范围了解决这个问题,有两种方式:(实际目前的方式就是把自增主键ID设置为bigint,也有一部分操作先查询再选择插入OR更新)方法一:拆分成两个动作,先查询,再更新方法二:修改innodb_autoinc_lock_mode参数(不推荐)  innodb_autoinc_lock_mode中有3

mysql insert语法注意事项(ON DUPLICATE KEY UPDATE )

mysql insert语法注意事项(ON DUPLICATE KEY UPDATE ) INSERT语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIO