mysql remplace l'impasse
習慣沉默
習慣沉默 2017-06-06 09:52:12
0
2
700

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_dthtl_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! 🎜
習慣沉默
習慣沉默

répondre à tous(2)
Peter_Zhu

Ê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.

为情所困

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal