Does MySQL foreign_key_checks affect the entire database?

Sean Nguyen picture Sean Nguyen · Dec 16, 2011 · Viewed 211.9k times · Source

When I execute this command in MySQL:

SET FOREIGN_KEY_CHECKS=0;

Does it affect the whole engine or it is only my current transaction?

Answer

Almo picture Almo · Dec 16, 2011

It is session-based, when set the way you did in your question.

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

According to this, FOREIGN_KEY_CHECKS is "Both" for scope. This means it can be set for session:

SET FOREIGN_KEY_CHECKS=0;

or globally:

SET GLOBAL FOREIGN_KEY_CHECKS=0;