I am working with:
- mysql: stable 5.6.22 (bottled)
- MySQLWorkBench 6.2
I have the following sequence
DROP TABLE IF EXISTS invoicedetail;
DROP TABLE IF EXISTS invoiceheader;
DROP TABLE IF EXISTS product;
It fails when I work through Java (JDBC) and fails through the MySQLWorkBench too, the error message is about the FK Child constraints (I don't have the exact error message), well through Google I did a research and I have found the same valid solution twice.
- Cannot delete or update a parent row: a foreign key constraint fails
- How to temporarily disable a foreign key constraint in MySQL?
Well I did the following:
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS invoicedetail;
DROP TABLE IF EXISTS invoiceheader;
DROP TABLE IF EXISTS product;
SET FOREIGN_KEY_CHECKS=1;
Again it works, just playing, I tried to execute again
DROP TABLE IF EXISTS invoicedetail;
DROP TABLE IF EXISTS invoiceheader;
DROP TABLE IF EXISTS product;
Being sure that SELECT @@FOREIGN_KEY_CHECKS;
returns 1
Well the original error message does not appear again.
Again I did a research on Google and I found the following:
Well it says: It is session-based
Well, even when:
- mysql server is stopped and restarted again
- workbench re-opened
- Computer re-started
and SELECT @@FOREIGN_KEY_CHECKS;
returns 1
The original error message does not appear again.
Therefore seems 'SET foreign_key_checks = 1'
does not work how is expected or an extra configuration/instruction is needed
I want be able to disable and enable that FK security constraint anytime