mysql设置外键约束开启-关闭

MySQL中删除一张表或一条数据的时候,出现

[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...)

这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。可以通过设置FOREIGN_KEY_CHECKS变量来避免这种情况。

 

我们可以使用

    SET FOREIGN_KEY_CHECKS=0;
来禁用外键约束.
 
之后再用
    SET FOREIGN_KEY_CHECKS=1;
来启动外键约束.
 
查看当前FOREIGN_KEY_CHECKS的值可用如下命令

    SELECT  @@FOREIGN_KEY_CHECKS;

时间: 2024-10-03 21:53:40

mysql设置外键约束开启-关闭的相关文章

MySQL的外键约束:Cascade/Restrict/No action/SET NULL

转自:http://blog.csdn.net/cnjsnt_s/article/details/5548280 具体使用时需要参考:http://blog.csdn.net/codeforme/article/details/5539454 (注:没看很明白,囧.) MySQL有两种常用的引擎类型:MyISAM和InnoDB.目前只有InnoDB引擎类型支持外键约束.InnoDB中外键约束定义的语法如下: [CONSTRAINT [symbol]] FOREIGN KEY [index_nam

MySQL 建立外键约束

http://www.jzxue.com/shujuku/mysql/201109/06-8742.html MySQL 建立外键约束的语法太晦涩难懂了, 不得不记下笔记. 1. 在建表时建立外键 CREATE TABLE table_s ( `id` int(11) NOT NULL AUTO_INCREMENT, `column_name_from` int(11) NOT NULL, `name` varchar(256) NOT NULL, PRIMARY KEY (`id`), IND

mysql SQL设置外键约束ON DELETE CASCADE

第一步:删除原有的外键约束 ALTER TABLE child_table DROP FOREIGN KEY `FK_Reference_2` ; 第二步:添加新的外键约束,增加ON DELETE CASCADE ALTER TABLE child_table ADD CONSTRAINT `FK_Reference_2` FOREIGN KEY (`parent_id` ) REFERENCES parent_table (`parent_id` ) ON DELETE CASCADE ON

mysql的外键约束

创建表格: #首先登录mysql mysql -uroot 打开一个数据库 mysql>use db1; 创建一个父表,我们命名为province, mysql> create table province ( -> id smallint auto_increment key, -> name varchar(10) NOT NULL -> ); 创建一个子表,命名为student,其中其pid引用来自province的id, mysql> create table

补12.关于mysql的外键约束

一.什么是mysql中的外键(froeign key) 假如说有两张表,其中一张表的某个字段指向了另一张表的主键,这就可以称之为外键(froeign key). 在子表中增加一条记录时,需要确定是否有与父表相对应的记录. 如果父表没有对应的记录,那么子表(从表)无法插入这条数据. 下面是一个关于外键的示例: 1.首先创建一个主表,这个主表存放了班级信息. create table class ( id TINYINT PRIMARY KEY auto_increment, class_name

详解MySQL的外键约束

创建表格 首先登录mysql,如 mysql -uroot -ppassword 打开一个数据库,如 mysql>use db1; 创建一个父表,我们命名为province,如 mysql> create table province (     -> id smallint auto_increment key,     -> name varchar(10) NOT NULL     -> ); 创建一个子表,命名为student,其中其pid引用来自province的i

mysql设置外键

. cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹配记录 . set null方式在父表上update/delete记录时,将子表上匹配记录的列设为null要注意子表的外键列不能为not null . No action方式如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作 . Restrict方式同no action, 都是立即检查外键约束 . Set default方式父表有变更时,子表将外键列设置成一个默

MySQL设置外键报错 #1452 - Cannot add or update a child row: a foreign key constraint fails 解决方法

MySQL数据库,当我尝试在A表中设置B表的主键为外键时,报出错误:#1452 - Cannot add or update a child row: a foreign key constraint fails  于是去搜索了一下 "#1452 - Cannot add or update a child row: a foreign key constraint fails" 的含义与解决方法,根据这篇博文去排查了报错原因,排除了可能1和可能2,然后去研究可能3的具体含义,一开始并

Mysql添加外键约束

简单说一下使用外键的好处 1.完整性约束 比如:用户表中有字段 用户编号(id) , 名称(username)设备表中有字段 设备编号(id) , 设备名称(devicename) 设备属于的用户编号(user_id) 把设备表中的用户编号设置成外键,引用用户表的主键. 当向设备表中输入数据时,如果输入用户编号在用户表中找不到对应的话,就会报错,从而能保证这个设备必定会属于一个存在的用户. 2.可以实现级联删除 还引用上面的例子,当一个用户不在使用该系统时,需要将用户和他的设备从数据库删除,如果