在insert的时候使用ON DUPLICATE KEY,这种方式能够成功的前提条件时表有唯一约束,否则会直接插入数据,导致重复,如果是多个字段联合起来唯一,那么可以在数据库表新建索引,索引涉及的字段为关联唯一的字段
sql举例如下:
insert into merchant_statistics_month(merchant_id, total_amount, total_trans, order_pay_month, unique_key)
values ('399200427027644', 12000.00, 9, '2020-11', '399200427027644_2020-11')
ON DUPLICATE KEY update
merchant_id='399200427027644', total_amount=12000.00, total_trans=9, order_pay_month='2020-11', unique_key='399200427027644_2020-11'
有了唯一约束之后,除了ON DUPLICATE KEY方法,还有replace的方式也可以做到以上要求
sql示例如下:
replace into merchant_statistics_month(merchant_id, total_amount, total_trans, order_pay_month, unique_key)
values ('399200427027644', 12000.00, 9, '2020-11', '399200427027644_2020-11')