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 创建主键,外键和复合主键的语句
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.首先我们需要创建一个数据库: 2.然后进入这个数据库: 3.创建表: 4.查看表: 三.使用主键约束 1.单字段主键 2.多字段联合主键 四.使用外键约束 1.mysql中外键是什么? 2.什么是主表?什么是从表? 3.如何在mysql中创建外键呢? 五.使用非空约束 六.使用唯一性约束 七.使用默认约束 八.设置表的属性值自动增加 前言: 在数据库中,数据表是数据库中最重要.最基本的操作对象,是数据存储的基本单位.数据表被定义为列的集
-
快速理解MySQL中主键与外键的实例教程
主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply 先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是 thread.php?id=1 表示我要访问的是帖子id是1 的帖子- 再来说说外键,当我们删除某个帖子的时候,需要执行另一个操作,就是删除所有回帖,如果正常情况下,我们需要执行两次delete操作(thread和 reply),这时候如果存在外键,例如,在reply 表里面建立一个指向thread表
-
简述MySQL主键和外键使用及说明
目录 一.外键约束 什么是外键: 外键的使用条件: 外键的定义语法: 简单演示使用 一.外键约束 MySQL通过外键约束来保证表与表之间的数据的完整性和准确性. 什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表.例如下面这两张表: 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支
-
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数据库中的主键与外键
一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的
随机推荐
- asp.net core mvc实现伪静态功能
- 444句英语口语常见语句 背下口语以后绝对不成问题了
- VBS教程:属性-Attributes 属性
- Android中加载网络资源时的优化可使用(线程+缓存)解决
- PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
- phpcms中的评论样式修改方法
- Python实现获取域名所用服务器的真实IP
- 详解Python的Django框架中manage命令的使用与扩展
- C#中Ilist与list的区别小结
- mysql中的跨库关联查询方法
- 利用swoole+redis实现股票和区块链服务
- php中检查文件或目录是否存在的代码小结
- JS如何设置元素样式的方法示例
- css写菜单:简洁注释版
- Ajax获取数据然后显示在页面的实现方法
- 将string数组转化为sql的in条件用sql查询
- 三条命令搞定Winload.exe出现0xc000000e错误
- js单例模式的两种方案
- IE中checkbox在刷新后初始化的问题
- 用PHP实现递归循环每一个目录