recherche

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

Impossible de supprimer ou de mettre à jour la ligne parent

Je suis un nouvel utilisateur. Je voudrais poser des questions sur une erreur que j'ai rencontrée dans mon projet de devoirs. Je crée room_type_id 这是房间类型表中的主键。然后,room_type_id comme clé étrangère à inclure dans la table des pièces. Le problème est que si j'entre l'un des identifiants de type de chambre en tant que RI2 au lieu de RT2. Lorsque j'essaie de le modifier dans une requête de mise à jour dans la table de salle, le message Impossible de mettre à jour la contrainte de clé étrangère de la ligne enfant a échoué. Cependant, cela montre que la ligne parent ne peut pas être mise à jour et que la contrainte de clé étrangère dans la table des types de pièces a échoué. Je suis désolé pour mon anglais car ce n'est pas ma langue principale

create table room_type (
room_type varchar(20) not null,
room_type_id varchar(10) not null,
primary key(room_type_id));
create table room (
room_no varchar(10) not null,
building_id  varchar(10) not null,
room_type_id varchar(10) not null,
room_price varchar(10) not null,
primary key(room_no),
foreign key (building_id) references
building(building_id),
foreign key (room_type_id) references
room_type(room_type_id));
insert into room_type
values ('Standard Room', 'RT1'),
('Dulexe Room', 'RI2'),
('Super Dulexe Room', 'RT3'),
('Suite Room', 'RT4'),
('Super Suite Room', 'RT5'),
('Executive Suite Room', 'RT6'),
('Presidential Suite Room', 'RT7'),
('Family Room', 'RT8'),
('VIP Room', 'RT9'),
('Ceremony Hall 1', 'RT10'),
('Ceremony Hall 2', 'RT11'),
('Ceremony Hall 3', 'RT12'),
('Meeting Conference Room 1', 'RT13'),
('Meeting Conference Hall 1', 'RT14'),
('Meeting COnference Hall 2', 'RT15');
insert into room
values ('R101', 'B1', 'RT1', '0'),
('R102', 'B1', 'RT1', '0'),
('R103', 'B1', 'RT1', '0'),
('R107', 'B1', 'RI2',  '0'),
('R108', 'B1', 'RI2', '0'),
('R1011','B1', 'RT3', '0'),
('R1012','B1', 'RT3',  '0'),
('R1013','B1', 'RT3', '0'),
('R1014','B1', 'RT3','0'),
('R501', 'B5', 'RT4',  '0'),
('R502', 'B5', 'RT4',  '0'),
('R505', 'B5', 'RT5',  '0'),
('R506', 'B5', 'RT5',  '0'),
('R601', 'B6', 'RT4',  '0'),
('R602', 'B6', 'RT4',  '0'),
('R605', 'B6', 'RT5',  '0'),
('R606', 'B6', 'RT5', '0'),
('R701', 'B7', 'RT6', '0'),
('R702', 'B7', 'RT6', '0'),
('R801', 'B8', 'RT7',  '0'),
('R802', 'B8', 'RT7',  '0'),
('R901', 'B9', 'RT8',  '0'),
('R902', 'B9', 'RT8',  '0'),
('R1001','B10','RT9',  '0'),
('R1002','B10','RT9',  '0'),
('R1101','B11','RT10',  '0'),
('R1102','B11','RT11',  '0'),
('R1103','B11','RT12',  '0'),
('R1201','B12','RT13',  '0'),
('R1202','B12','RT14',  '0'),
('R1203','B12','RT15',  '0');
Update room
set room_type_id='RT2'
where room_no='R107';
Update room
set room_type_id='RT2'
where room_no='R108', building_id='B1';
Update room_type
set room_type_id = 'RT2'
where room_type='Dulexe Room'; 

P粉696891871P粉696891871278 Il y a quelques jours453

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

  • P粉037215587

    P粉0372155872024-02-26 16:08:09

    La contrainte de clé étrangère échoue car dans votre room_type 表中没有包含 room_type_id='RT2' ligne

    Aussi, si room 中的行具有特定的 room_type_id,则无法在 room_type la ligne est modifiée dans le tableau. Pour ce faire, vous pouvez effectuer les étapes suivantes :

    1. Nouvelle ligne en room_type 中添加包含正确 room_type_id
    2. Mise à jour room 中有问题的行以获取新的 room_type_id
    3. De room_type 中删除 room_type_id mauvaise ligne

    répondre
    0
  • Annulerrépondre