MySQL删除外键、增加外键以及删除主键、增加主键的实战步骤
目录
- 一、MySQL删除外键
- 二、MySQL增加外键
- 三、MySQL删除主键
- 四、MySQL增加主键
- 补充:MySQL中有外键时数据表的删除方法
- 总结
一、MySQL删除外键
格式:
alter table 表名 drop foreign key 外键名;
表名就是有外键存在的那个表。
外键名可以通过查看表的创建信息得到。
查看表的创建信息格式:
show create table 表名;
二、MySQL增加外键
外键可以在修改表时添加,但是添加外键的前提是:
从表中外键列中的数据必须与主表中主键列中的数据一致或没有数据
给表增加外键格式:
alter table 需要添加外键的表名 add constraint 外键名 foreign key(本表字段列表) references 主表名(字段列表);
在创建数据表时添加外键格式:
constraint 外键名 foreign key(本表字段列表) references 主表名 (主表字段列表);
注意:
1、外键字段的数据类型必须与父表中的主键类型一致
2、添加外键的数据表的存储引擎必须是InnoDB,否则即使添加外键成功,也不具有外键约束的作用。
3、一张表中不能出现同名外键
4、当外键字段中有值后,再添加外键时,已有的值必须在父类主键中,否则无法创建成功。
三、MySQL删除主键
格式:
alter table 表名 drop primary key;
四、MySQL增加主键
格式:
alter table 表名 add primary key(字段列表);
在创建数据表时添加主键格式:
字段名 数据类型 primary key;
注意:
1、一个数据表主键约束只能有一个。
2、主键的字段不允许空值。
补充:MySQL中有外键时数据表的删除方法
直接删除grade,被引用的数据表时如下
报错
解决方法
先删除student,要引用的数据表
然后删除grade,被引用的数据表
成功
总结
到此这篇关于MySQL删除外键、增加外键以及删除主键、增加主键的文章就介绍到这了,更多相关MySQL删除增加外键及删除增加主键内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
mysql主键,外键,非空,唯一,默认约束及创建表的方法
目录 一.操作前提 二.mysql创建/新建表 1.首先我们需要创建一个数据库: 2.然后进入这个数据库: 3.创建表: 4.查看表: 三.使用主键约束 1.单字段主键 2.多字段联合主键 四.使用外键约束 1.mysql中外键是什么? 2.什么是主表?什么是从表? 3.如何在mysql中创建外键呢? 五.使用非空约束 六.使用唯一性约束 七.使用默认约束 八.设置表的属性值自动增加 前言: 在数据库中,数据表是数据库中最重要.最基本的操作对象,是数据存储的基本单位.数据表被定义为列的集
-
MySQL 创建主键,外键和复合主键的语句
1.创建主键语法 ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名); 2.创建外键语法 ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列] REFERENCES news_type[主表名] (id)[主表列] ; 3.使用组合主键 如果一列不能唯一区分一个表里的记录时,可以考虑多个
-
简述MySQL主键和外键使用及说明
目录 一.外键约束 什么是外键: 外键的使用条件: 外键的定义语法: 简单演示使用 一.外键约束 MySQL通过外键约束来保证表与表之间的数据的完整性和准确性. 什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支
-
快速理解MySQL中主键与外键的实例教程
主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply 先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是 thread.php?id=1 表示我要访问的是帖子id是1 的帖子- 再来说说外键,当我们删除某个帖子的时候,需要执行另一个操作,就是删除所有回帖,如果正常情况下,我们需要执行两次delete操作(thread和 reply),这时候如果存在外键,例如,在reply 表里面建立一个指向thread表
-
mysql增加外键约束具体方法
本教程操作环境:windows7系统.mysql8版本.Dell G3电脑. MySQL 外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用.对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表). 外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性. 定义外键时,需要遵守下列规则: 主表必须已经存在于数据库中,或者是当前正在创建的表.如果是后一种情况,则主表与从表是同一个表,这样的表
-
MySQL删除外键、增加外键以及删除主键、增加主键的实战步骤
目录 一.MySQL删除外键 二.MySQL增加外键 三.MySQL删除主键 四.MySQL增加主键 补充:MySQL中有外键时数据表的删除方法 总结 一.MySQL删除外键 格式: alter table 表名 drop foreign key 外键名; 表名就是有外键存在的那个表. 外键名可以通过查看表的创建信息得到. 查看表的创建信息格式: show create table 表名; 二.MySQL增加外键 外键可以在修改表时添加,但是添加外键的前提是: 从表中外键列中的数据必须与主表中主
-
MySQL多表操作的外键约束教程
目录 一.多表关系 一对一关系 一对多/多对一关系 多对多关系 二.外键约束 特点 创建外键约束 方式1-在创建表时设置外键约束 方式2-在创建表时设置外键约束 在外键约束下的操作 1.数据插入 2.删除数据 3.删除外键约束 外键约束-多对多关系 操作 一.多表关系 MySQL多表之间的关系可以概括为:一对一.一对多/多对一关系,多对多 一对一关系 一个学生只有一张身份证;一张身份证只能对应一学生.在任一表中添加唯─外键,指向另一方主键,确保一对一关系.一般一对一关系很少见,遇到一对一关系的表
-
MySQL 关闭子表的外键约束检察方法
准备: 定义一个教师表.一个学生表:在学生表中引用教师表ID create table teachers(teacherID int not null auto_increment primary key,teacherName varchar(8)); create table students(studentID int not null auto_increment primary key,teacherID int not null,studentName varchar(8), con
-
MySQL slave 延迟一列 外键检查和自增加锁
目录 MySQL slave 延迟 外键检查和自增加锁 一.现象 二.pscak 采样 三.自增锁获取逻辑 四.方案 MySQL slave 延迟 外键检查和自增加锁 一.现象 延迟大,大事物. 表结构 无IO SQL THREAD占用CPU 100% 二.pscak 采样 采样30个点 外键检查 占70% 自增锁获取 占30% 三.自增锁获取逻辑 逻辑如下其实也是innodb_autoinc_lock_mode参数的作用 switch (lock_mode) { case AUTOINC_NO
-
Mysql外键约束的创建与删除的使用
目录 创建表时创建外键 给存在的表添加外键 删除外键约束 创建表时创建外键 创建两个表格, 一个名为class, create table classes( id int not null primary key, name varchar(30) ); 另一个名为student create table student( sid int not null primary key, sname varchar(30), cid int not null, constraint fk_cid fo
-
MySQL语句中的主键和外键使用说明
目录 一.主键: 1.1)主键字段定义: 1.2) 创建: 1.3)主键的选取原则: 1.4)主键值的生成方式: 二.外键: 2.1)外键定义: 2.2)外键(约束)创建(不推荐使用,一般不进行外键约束,只进行外键约定): 2.3)外键出现的情况: 三.主键和外键的区别总结: 一.主键: 1.1)主键字段定义: 在数据库表中,如果有一组字段能够唯一确定一条记录,则可以把它们设计成表的主键字段. 例子:如果要创建一个人的信息表(字段:姓名,年龄,籍贯,工作单位......),那么身份证号是唯一能确
-
如何区分SQL数据库中的主键与外键
一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的
随机推荐
- 利用angularjs1.4制作的简易滑动门效果
- Linux系统下使用XHProf和XHGui分析PHP运行性能
- 为SWFUpload增加ASP版本的上传处理程序
- 深入解析Redis中常见的应用场景
- jQuery+CSS实现滑动的标签分栏切换效果
- 用JavaScript显示浏览器客户端信息的超相近教程
- 在.NET2.0中使用自定义事务操作
- 发布一个迷你php+AJAX聊天程序[聊天室]提供下载
- Python Queue模块详细介绍及实例
- js获取html的span标签的值方法(超简单)
- JavaScript实现链表插入排序和链表归并排序
- Ajax学习全套(最全最经典)
- 对比C语言中execv相关的执行文件的三个函数
- 将\u8BF7\u9009\u62E9 这样的字符串转为汉字的代码
- Apache提示 the requested operation has failed无法启动的解决方法大全
- jquery.map()方法的使用详解
- jquery必须知道的一些常用特效方法及使用示例(整理)
- 浮动广告js类实现
- 虚拟主机安全设置
- C++基础知识实例解析(一)