Maison  >  Article  >  base de données  >  Explication détaillée de la méthode d'inspection des contraintes de clé étrangère pour fermer les tables enfants dans MySQL (image)

Explication détaillée de la méthode d'inspection des contraintes de clé étrangère pour fermer les tables enfants dans MySQL (image)

黄舟
黄舟original
2017-03-18 14:01:261409parcourir

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');

Explication détaillée de la méthode d'inspection des contraintes de clé étrangère pour fermer les tables enfants dans MySQL (image)

Insérer un élève :

insert into students(studentName,teacherID) values('NameB',100);--可以知道没有这个教师号、所以插入会出错。

Explication détaillée de la méthode d'inspection des contraintes de clé étrangère pour fermer les tables enfants dans MySQL (image)

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);

Explication détaillée de la méthode d'inspection des contraintes de clé étrangère pour fermer les tables enfants dans MySQL (image)

É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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn