208 votes

mysql SET FOREIGN_KEY_CHECKS

Quand j'exécute cette commande dans mysql

 SET FOREIGN_KEY_CHECKS=0;
 

Cela affecte-t-il l'ensemble du moteur ou s'agit-il uniquement de ma transaction actuelle?

258voto

Almo Points 3815

C'est basé sur la session. Faites un test pour être sûr, mais c'est ce que je comprends.

100voto

Ron Inbar Points 322

En fait, il y a deux foreign_key_checks variables: une variable globale et locale (par session) de la variable. Au moment de la connexion, la variable de session est initialisée à la valeur de la variable globale.
La commande SET foreign_key_checks modifie la variable de session.
Pour modifier la variable globale, utilisez SET GLOBAL foreign_key_checks ou SET @@global.foreign_key_checks.

Consulter le manuel de sections:
http://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

10voto

Mike Karras Points 38

SHOW Variables WHERE Variable_name = 'foreign_key_checks'; vous obtiendrez l'état local actuel (basé sur la session).

Si vous n'avez pas SET GLOBAL, seule votre session a été effectuée.

-2voto

user2682955 Points 12

En cas d'utilisation du navigateur de requêtes Mysql, SET FOREIGN_KEY_CHECKS=0; n'a aucun impact dans la version 1.1.20. Cependant, cela fonctionne très bien sur le navigateur de requêtes Mysql 1.2.17

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X