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;
// 这样才能成功删除外键。
mysql 外键报错_MySQL添加外键、删除外键方式,MySQL删除外键报错快速解决方案...相关推荐
- mysql新增范围之外数据_mysql第二天 数据的增删改查补充及外键
1.主键的一些补充: 1.1 一个表中只允许一个主键,但是多个列可以共同拥有一个主键: 上节课内容学的命名主键的方式:(具有一定的约束条件,不能为空,并且不能重复) mysql>create t ...
- mysql 绿色版 无法启动_MySql免安装版安装配置,附MySQL服务无法启动解决方案
文首提要: 我下载的MySQL版本是:mysql-5.7.17-winx64.zip Archive版:系统:Windows7 64位. 一.解压文件 下载好MySQL后,解压到D盘下,也可以根据个 ...
- mysql的配置文件几个_mysql多实例(多个配置文件方式)
1)简介mysql 版本:mysql-5.5.27cmake:cmake-2.8.8操作系统:CentOS6.5mysql实例数:3个实例占用端口分别为:3306.3307.33082)本次安装所有的 ...
- 关于mysql添加外键的时候报错_MySQL添加外键时报错:1215 Cannot add the foreign key constraint的一个可能解决方法...
今天给设计好的班级表和专业表以及院系表添加外键时,报了这样一个错误 ** 1215 Cannot add the foreign key constraint ** 去百度搜了一圈,说可能时因为字段类 ...
- mysql添加外键1215错误_MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法...
前言 这篇文章主要涉及到在数据创建表时,遇到ERROR 1215 (HY000): Cannot add foreign key constraint 问题方面的内容,对于在数据创建表时,遇到同样问题 ...
- oracle_sqlserver和mysql获取表外键的方法_mysql、sqlserver、oracle三种数据库维护索引、外键、字段语法总结...
mysql.sqlserver.oracle三种数据库维护索引.外键.字段语法总结 1. MYSQL数据库 1) 创建索引 CREATE INDEX index_name ON tabl ...
- mysql count join速度慢_MySql两张百万级表关联的count效率求解? 400 报错-问答-阿里云开发者社区-阿里云...
select count(1) from B b inner join A a on a.id = b.personid where b.code like '32%' 这样试试呢######sele ...
- mysql读取自增值失败_MySQL添加自增列失败
想往一个mysql表里添加一个自增列做主键,居然失败报告无法读取,这是怎么回事? 1.问题描述 有位朋友在升级discuz论坛数据库时遇到问题了,想给一个表添加自增列做主键,结果发生下面的报错: my ...
- mysql索引增加栏位_mysql 添加索引 mysql 如何创建索引
1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引 ...
最新文章
- 基于用户画像 《列变行》 特征打标显示
- 全球及中国皮革和纺织品用甲酸行业竞争调查分析及投资规划报告2021年版
- C#的常见算法(面试)(转)
- 设单链表中存放n个字符,试设计一个算法,使用栈推断该字符串是否中心对称...
- torch和tensorflow各版本下载地址,tensorflow与cuda版本对应关系
- Vue学习笔记之10-组件化开发
- Mac原生浏览器Safari,那些你都不知道的使用技巧
- mseed读取[2]
- Class文件是个啥?
- Web前端工程师的职业规划,助你走好前端路
- 一名IT界“老”技术人关于学习与成长的分享,受益!
- 如何理解面向对象的封装、继承、多态
- 启xin宝app的token算法破解——抓包分析篇(一)
- 让Android Studio项目通过阿里云 代理加速下载依赖资源
- PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 中文翻译
- 积分风控体系建设包含的四个内容
- 网络基础3----->广域网传输流程
- cegui + directX9
- Rosetta Stone 4.1.15 下载破解和语言包
- vscode使用备忘
热门文章
- 女人身体8大隐私部位长得越丑健康指数越高_113
- error: can‘t create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied)
- 商米科技首次冲刺上市失败:科创属性遭质疑,连年亏损造血难?
- QActionGroup - setExclusive(互斥)
- 两名老人接力营救轻生女子一人溺亡
- 移动互联网终端的touch事件,touchstart, touchend, touchmove
- 1953年克里克和沃森发现DNA双螺旋结构
- 河北计算机对口高考数学考试题,2015年河北省对口高考数学试题(含答案)
- 零跑科技赴港上市:销量“数据打架”,真假难辨,如何取信于人?
- 你知不知道,天空没有想象中蓝