L'éditeur suivant vous proposera un article sur la méthode d'inspection des contraintes de clé étrangère pour fermer les sous-tables dans MySQL. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un œil.
Préparation :
Définissez une table enseignant et une table élève dans le fichier ; ID de table d'élève
create table teachers(teacherID int not null auto_increment primary key,teacherName varchar(8)); create table students(studentID int not null auto_increment primary key,teacherID int not null,studentName varchar(8), constraint fk_students_teacherID foreign key (teacherId) references teachers(teacherId) on delete no action on update cascade);
Étape 1 :
Insérer un enseignant
insert into teachers(teacherName) values('NameA');
Insérer un élève :
insert into students(studentName,teacherID) values('NameB',100);--可以知道没有这个教师号、所以插入会出错。
Mais existe-t-il un moyen d'insérer une donnée déraisonnable ? Il existe encore des moyens
Étape 2 :
set Foreign_key_checks = 0 ;
insert into students(studentName,teacherID) values('NameB',100);
Étape 3 :
Rétablir les valeurs par défaut et conserver les paramètres Inspection des contraintes clés.
set foreign_key_checks =1;
Résumé :
Cet essai est très compliqué. Le point principal que je veux dire est de définir Foreign_key_checks = 0. ; les contraintes de clé étrangère sont inutiles. À ce stade, les insertions dans la sous-table qui violent les contraintes de clé étrangère peuvent être effectuées.
Ne l’utilisez pas sauf en cas d’absolue nécessité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!