300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql 外键报错_MySQL添加外键 删除外键方式 MySQL删除外键报错快速解决方案...

mysql 外键报错_MySQL添加外键 删除外键方式 MySQL删除外键报错快速解决方案...

时间:2019-07-16 03:49:51

相关推荐

mysql  外键报错_MySQL添加外键 删除外键方式 MySQL删除外键报错快速解决方案...

外键的作用主要在于对各类表单进行约束,避免出现冗余数据及超出数据。那么,MySQL如何添加与删除外键?添加删除外键时报错是什么原因?

本文将从创建MySQL表单时添加外键、给已存在表单添加外键、删除外键3个方面进行介绍,属于何种情况可快速定位。

创建MySQL表单时添加外键

外键是外部引用,因此作为外键的表一定是已经存在的,此处以ta、tb两个表做一个简单介绍。

现有表单ta数据如下:

+------+---------+

| cid | cname |

+------+---------+

| 1 | Chinese |

| 2 | English |

+------+---------+

// 将引入ta表cid属性

ta表单结构如下:

| ta | CREATE TABLE `ta` (

`cid` int(11) NOT NULL,

`cname` varchar(20) DEFAULT NULL,

PRIMARY KEY (`cid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

//此处贴出ta表结构主要在于,作为外键引入的字段必须是唯一的,满足唯一性条件的有主键PRIMARY KEY与唯一UNIQUE,此处cid作为主键具备唯一性。

需要将ta作为外键引入tb,那么创建的tb表如下:

CREATE TABLE tb(

cid INT,

id INT,

name VARCHAR(20),

FOREIGN KEY (cid) REFERENCES ta(cid)

);

给已经存在的MySQL表单添加外键

ALTER TABLE tb ADD FOREIGN KEY(cid) REFERENCES ta(cid);

//此处需要注意的是两个字段名都需要加上括号。

删除外键

删除外键无法直接DROP FOREIGN KEY + 该字段名,而应该进行两步操作:

1、SHOW CREATE TABLE tb;

其返回结果如下:

| tb | CREATE TABLE `tb` (

`cid` int(11) DEFAULT NULL,

`id` int(11) DEFAULT NULL,

`name` varchar(20) DEFAULT NULL,

KEY `cid` (`cid`),

CONSTRAINT `tb_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `ta` (`cid`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

// 需要注意的是倒数第二行CONSTRAINT得到的结果`tb_ibfk_1`,此处才是DROP的目标。

2、ALTER TABLE tb DROP FOREIGN KEY tb_ibfk_1;

// 这样才能成功删除外键。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。