mysql - 在MySql中禁用插入操作中的外键检查

标签 mysql foreign-keys foreign-key-relationship

我有一个表,用于映射其他两个表的两个主键。我将这两个字段作为外键。映射表没有主键当我尝试插入两个表中已有的2个值时,我得到无法添加或更新子行:外键约束失败 错误。 我该如何解决这个问题?

我的表是这样的:

CREATE TABLE IF NOT EXISTS fuse_package_component_members    
( component_id int(11) NOT NULL, 
     member_type int(11) NOT NULL, 
     member_id int(11) NOT NULL, 
     active_date date NOT NULL, 
     inactive_date date NOT NULL, 
     KEY component_id (component_id), 
     KEY member_id (member_id) ) 
   ENGINE=InnoDB DEFAULT CHARSET=latin1

ALTER TABLE fuse_package_component_members 
ADD CONSTRAINT comp_id_fk 
FOREIGN KEY (component_id) REFERENCES fuse_component_definition (component_id) ON UPDATE NO ACTION, 
ADD CONSTRAINT ele_id_fk 
FOREIGN KEY (member_id) REFERENCES fuse_product_element (element_id)
ON DELETE NO ACTION ON UPDATE NO ACTION;

最佳答案

SET foreign_key_checks = 0;
UPDATE ...
SET foreign_key_checks = 1;

https://dev.mysql.com/doc/refman/5.5/en/create-table-foreign-keys.html

关于mysql - 在MySql中禁用插入操作中的外键检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27226441/

相关文章:

MySQL SELECT IN 带子查询

Java 在一个类中与 mysql 建立连接,但不在不同的类中建立连接

php - 创建和优化 mysql 查询,php

mysql - 我需要跨多个表继承外键吗?

php - 这个 URLRequest 或 Loader 有什么问题?

php - MySQL + PHP : fetching data using foreign keys

mysql - 想要向现有表添加一个外键列

MySQL 使用外键创建表给出 errno : 150

mysql - 如果 FK 表具有复合主键(FK 不是复合的一部分),则外键作为主键不起作用

FK 字段上的 hibernate createCriteria 对我不起作用