各位好,遇到一个问题,请教一下大家。
我现在有一张业务表,结构如下
CREATE TABLE rms_pickup_step_agg (
htl_cd varchar(20) DEFAULT NULL COMMENT '酒店编号',
para_typ int(11) DEFAULT NULL COMMENT '汇总类型',
para_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '汇总代码',
sub_typ int(11) DEFAULT NULL COMMENT '子类型',
sub_cd varchar(100) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL COMMENT '子类型代码',
pickup_day int(11) DEFAULT NULL COMMENT 'Pickup day',
live_dt varchar(30) DEFAULT NULL,
occ float DEFAULT NULL COMMENT '出租房数',
rev float DEFAULT NULL COMMENT '房费收入',
update_dt datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY idx01_rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Pickup步速表';
现在有两个线程同时执行语句,
线程1 执行replace INTO rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt,occ,rev,update_dt) VALUES ('101336', '0', '0', '3', 'NC', '14', '2017', '7.0', '3160.40', '2017-05-29 07:31:27');
不提交
线程2 执行 replace INTO rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt,occ,rev,update_dt) VALUES ('101336', '0', '0', '3', 'NC', '14', '2016', '7.0', '3160.40', '2017-05-29 07:31:27');
发现线程2出现等待锁的情况。
为啥会出现锁?谢谢!