Ignore MySQL foreign key constraints in PHP

前端 未结 4 1513
生来不讨喜
生来不讨喜 2021-02-19 10:17

Is there a way to override mysql foreign key constraints in a php script?

I have a query passed to mysql from php, but it fails a foreign key constraint, is there any wa

相关标签:
4条回答
  • 2021-02-19 10:56
    mysql_query('SET foreign_key_checks = 0');
    //do some stuff here
    mysql_query('SET foreign_key_checks = 1');
    
    0 讨论(0)
  • 2021-02-19 10:57

    I have something like this in my snippet collection:

    SET @BACKUP_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS; 
    SET @@FOREIGN_KEY_CHECKS=0;
    
    -- Do stuff here
    
    SET @@FOREIGN_KEY_CHECKS=@BACKUP_FOREIGN_KEY_CHECKS;
    SET @BACKUP_FOREIGN_KEY_CHECKS=NULL;
    
    0 讨论(0)
  • 2021-02-19 11:01

    You can execute that MySQL query to disable foreign keys check:

    SET FOREIGN_KEY_CHECKS=0;
    

    Don't forget to enable it when you're done:

    SET FOREIGN_KEY_CHECKS=1;
    
    0 讨论(0)
  • 2021-02-19 11:01

    Run the query: set FOREIGN_KEY_CHECKS=0;

    mysql> insert into bar values(1);
    ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`test`.`bar`, CONSTRAINT `bar_ibfk_1` FOREIGN KEY (`foo_id`) REFERENCES `foo` (`foo_id`) ON UPDATE CASCADE)
    mysql> set FOREIGN_KEY_CHECKS=0;
    Query OK, 0 rows affected (0.00 sec)
    mysql> insert into bar values(1);
    Query OK, 1 row affected (0.00 sec)
    
    0 讨论(0)
提交回复
热议问题