recherche

Maison  >  Questions et réponses  >  le corps du texte

mysql remplace l'impasse

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! 🎜
習慣沉默習慣沉默2735 Il y a quelques jours692

répondre à tous(2)je répondrai

  • 天蓬老师

    天蓬老师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.

    répondre
    0
  • 为情所困

    为情所困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

    répondre
    0
  • Annulerrépondre