Saya pengguna baharu. Saya ingin bertanya tentang kesilapan yang saya hadapi dalam projek kerja rumah saya. Saya mencipta room_type_id
这是房间类型表中的主键。然后,room_type_id
sebagai kunci asing untuk dimasukkan ke dalam meja bilik. Masalahnya ialah jika saya memasukkan salah satu ID jenis bilik sebagai RI2 dan bukannya RT2. Apabila saya cuba menukarnya dalam pertanyaan kemas kini dalam jadual bilik, ia berkata Tidak dapat mengemas kini kekangan kunci asing baris anak gagal. Walau bagaimanapun, ia menunjukkan bahawa baris induk tidak boleh dikemas kini, kekangan kunci asing dalam jadual jenis bilik gagal. Saya minta maaf tentang bahasa Inggeris saya kerana ia bukan bahasa utama saya
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';
Kekangan kunci asing gagal kerana dalam talian
room_type
表中没有包含room_type_id='RT2'
andaSelain itu, jika
room
中的行具有特定的room_type_id
,则无法在room_type
baris ditukar dalam jadual. Untuk melakukan ini, anda boleh melakukan langkah berikut:room_type
中添加包含正确room_type_id
room
中有问题的行以获取新的room_type_id
room_type
中删除room_type_id
salah baris