数据重复(唯一索引的设置)

现象:

表中含有自增ID字段时,脚本同一时间多次调用,导致写入重复数据

原因:

​ 首先,表的结构为自增ID表结构,只要传入写入的数据,数据就会被写入,所以在写入数据前是进行truncate操作,将数据进行删除,再进行写入。其次,由于脚本同一时间触发多次,执行速度相同,在写入数据时,就会同时写入相同的数据,导致数据重复。

​ 举例:四川天府银行资产管理银行理财数据重复::当天调度同一时间触发多次,且表结构为自增ID结构,导致数据 重复写入。所以在脚本下次未执行之前,数据都是重复(错误)的。

解决:

​ 1)对相关数据表建立唯一索引 ,由于唯一索引是自己设置的,防止遗漏数据,所以加了2措施。

​ 2)  针对唯一索引增加保护措施 :在写入数据后,将写入的数据长度与计算结果数据长度进行长度比对,如若长度不对,脚本会直接报错,提醒维护人员修改其唯一索引的设置。

​ 添加、删除唯一索引语法为:

添加唯一索引:

ALTER TABLE product_price_all_market_gather ADD unique(cp_id,product_object); 其中product_price_all_market_gather 为表名,cp_id、product_object为字段名
删除唯一索引::

ALTER TABLE product_price_all_market_gather DROP INDEX cp_id_2 ; 其中product_price_all_market_gather 为表名,cp_id_2 为唯一索引标记

影响:

​ 页面会展示多条数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值