Maison > Questions et réponses > le corps du texte
Bonjour à tous, j'ai un problème et je souhaite vous demander de l'aide.
J'ai maintenant une table d'affaires avec la structure suivante
CREATE TABLE rms_pickup_step_agg
(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
htl_cd
varchar(20) DEFAULT NULL COMMENT 'hotel number',para_typ< /code code> int(11) COMMENTAIRE NULL PAR DÉFAUT 'type de résumé',
para_cd
varchar(100) CHARACTER SET utf8 COLLATE utf8_bin COMMENTAIRE NULL PAR DÉFAUT 'code résumé',sub_typ
int (11) COMMENTAIRE NULL PAR DÉFAUT 'sous-type',sub_cd
varchar(100) CHARACTER SET utf8 COLLATE utf8_bin COMMENTAIRE NULL PAR DÉFAUT 'code de sous-type',pickup_day
int(11 ) ) COMMENTAIRE NULL PAR DÉFAUT 'Jour de ramassage',
live_dt
varchar(30) NULL PAR DÉFAUT,occ
float COMMENTAIRE NULL PAR DÉFAUT 'Nombre de chambres à louer',
rev< /code> float COMMENTAIRE NULL PAR DÉFAUT 'Revenus des frais de chambre',update_dt
datetime COMMENTAIRE PAR DÉFAUT CURRENT_TIMESTAMP 'Heure de mise à jour',
CLÉ UNIQUE idx01_rms_pickup_step_agg
(htl_cd< /code >,para_typ
,para_cd
,sub_typ
,sub_cd
,pickup_day
,< code> live_dt
) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Tableau des rythmes de ramassage';
🎜Maintenant, deux threads exécutent des instructions en même temps, 🎜Le thread 1 exécute le remplacement 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');🎜Ne pas soumettre🎜
🎜Thread 2 exécute le remplacement INTO rms_pickup_step_agg (htl_cd,para_typ,para_cd,sub_typ,sub_cd,pickup_day,live_dt,occ,rev,update_dt) VALEURS ('101336', '0', '0', '3', 'NC', '14', '2016', '7.0', '3160.40', '2017-05-29 07:31:27');🎜
🎜Il a été constaté que le fil 2 attendait le verrou. 🎜
🎜Pourquoi y a-t-il un verrou ? Merci! 🎜
天蓬老师2017-06-06 09:54:12
Êtes-vous sûr qu'il y a une impasse ? Il va de soi qu'il n'y a pas de conflit. Cet index unique n'est pas en conflit. Cette table n'a pas de clé primaire. Veuillez ajouter une clé primaire.
为情所困2017-06-06 09:54:12
Sous le niveau d'isolement par défaut d'innodb, vous remplacez un index unique. En théorie, les verrous de ligne ne devraient pas bloquer. Êtes-vous sûr de n'avoir que ces opérations ? Je n’ai pas non plus vu de mises à jour de ce type de verrouillage de transaction dans la version 5.7