目录

整理了一下这个知识,虽然很简单哈,为了以后的方便。

为已经添加好的数据表添加外键

语法:

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

例:

alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id)

//FK_ID是外键的名称

/*

CREATE TABLE `tb_active` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`title` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,

`content` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,

`user_id` int(11) NOT NULL,

PRIMARY KEY (`id`),

KEY `user_id` (`user_id`),

KEY `user_id_2` (`user_id`),

CONSTRAINT `FK_ID` FOREIGN KEY (`user_id`) REFERENCES `tb_user` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

*/

删除外键

语法:

ALTER TABLE table-name DROP FOREIGN KEY key-id;

例:

ALTER TABLE `tb_active` DROP FOREIGN KEY `FK_ID`

自动键更新和删除:

外键可以保证新插入的记录的完整性,但是,如果在REFERENCES从句中已命名的表删除记录会怎么样?在使用同样的值作为外键的辅助表中会发生什么?

很明显,那些记录也应该被删除,否则在数据库中就会有很多无意义的孤立记录,MYSQL可以通过向FOREIGN KEY...REFERENCES修饰符添加一个ON DELETE 或ON UPDATE子句简化任务,它告诉了数据库在这种情况如何处理孤立任务

关键字

含义

CASCADE

删除包含与已删除键值有参照关系的所有记录

SET NULL

修改包含与已删除键值有参照关系的所有记录,使用NULL值替换(只能用于已标记为NOT NULL的字段)

RESTRICT

拒绝删除要求,直到使用删除键值的辅助表被手工删除,并且没有参照时(这是默认设置,也是最安全的设置)

NO ACTION

啥也不做

请注意,通过ON UPDATE 和 ON DELETE规则,设置MYSQL能够实现自动操作时,如果键的关系没有设置好,可能会导致严重的数据破坏。

例如:如果一系列的表通过外键关系和ON DELETE CASCADE 规则连接时,任意一个主表的变化都会导致甚至只和原始删除有一些将要联系的记录在没有警告的情况被删除,所以,我们在操作之前还要检查这些规则的,操作之后还要再次检查。

添加外键

alter table locstock add foreign key locstock_ibfk2(stockid) references product(stockid)

locstock 为表名, locstock_ibfk2 为外键名 第一个括号里填写外键列名, product为表名,第二个括号里是写外键关联的列名

删除外键

alter table locstock drop foreign key locstock_ibfk2

查看表有哪些外键

show create table locstock

如有错误,请多多指教。

mysql中平方米显示不出来_MySQL - 添加外键相关推荐

  1. mysql中平方米显示不出来_MYSQL 创建常见问题

    1.创建函数时,报错: 出错信息: ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL ...

  2. mysql中怎样插入外键_MySQL 添加外键

    MySQL 添加外键 MySQL 添加外键 DROP TABLE IF EXISTS `nation`; CREATE TABLE `nation`( `pii_Nation` smallint(2) ...

  3. mysql实用管理器添加外键_MySQL 添加外键

    MySQL 添加外键 MySQL 添加外键 DROP TABLE IF EXISTS `nation`; CREATE TABLE `nation`( `pii_Nation` smallint(2) ...

  4. mysql 增加外键_Mysql 添加外键

    语法:alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名); 例: alter ta ...

  5. mysql 外键冲突_mysql添加外键错误是什么原因

    mysql添加外键错误的原因:1.外键的字段与关联字段的类型不匹配:2.外键名重复:3.外键没有建立索引:4.外键存在默认值:5.语法错误. 原因分析: 第一种情况:外键的字段与关联的字段的类型不匹配 ...

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

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

  7. mysql给一个表添加外键约束_Mysql添加外键约束

    简单说一下使用外键的好处 1.完整性约束 比如: 用户表中有字段 用户编号(id) , 名称(username) 设备表中有字段 设备编号(id) , 设备名称(devicename) 设备属于的用户 ...

  8. mysql 增加外键_mysql添加外键的4种方式

    今天开始复习,在过后的几天里开始在博客上记录一下平时疏忽的知识点,温故而知新 屁话不多--直接上货 创建主表: 班级 CREATE TABLE class(cid INT PRIMARY KEY AU ...

  9. mysql添加外键出现1452错误_MySQL添加外键失败ERROR 1452的解决

    今天在学习数据库添加外键的时候,遇到了问题 我先创建了两个表  orders 和 order_items  ,存储引擎都是InnoDB, 且都有orderid这个属性(类型完全一样), 但是我使用命令 ...

最新文章

  1. JavaScript对象中的构造方法
  2. java keytool 代码_JDK keytool证书工具功能代码解析_java_脚本之家
  3. python快速编程入门课本中的名片管理器_python实现名片管理器的示例代码
  4. 产品经理应该掌握的信息架构知识
  5. 深入理解web.xml中配置/和/*的区别
  6. self = [super init]的解释
  7. 追随你心 —— 聊聊VMCloud
  8. 模式识别(3)-SVM分类算法
  9. 离线安装IE11浏览器
  10. CTF Crypto 入门练习
  11. 下载知乎视频并在线播放
  12. 企业固定资产管理存在的问题及改进建议
  13. 昆明钉钉智慧校园K12解决方案,校园安全、健康、生活、办公、网络整体解决方案
  14. 详解 http-server的安装和使用
  15. 线性代数--线性方程组
  16. 【愚公系列】2023年02月 WMS智能仓储系统-010.全局过滤、中间件、格式化配置
  17. ISO/IEC14443
  18. 【微信授权登录】uniapp开发小程序,实现获取微信授权登录功能
  19. IPsec IKE第一阶段主模式和野蛮模式
  20. 一点心得,觉知此事须躬行

热门文章

  1. input输入框只读和禁用状态
  2. Mac Nginx 安装与配置
  3. java依赖dll,java - 使用Java查找/解析DLL的依赖DLL - 堆栈内存溢出
  4. 【分享NVIDIA GTC 23大会干货】加速生成式AI在生物学和医疗领域的应用
  5. Excel的只读模式和限制编辑有区别吗?如何设置和取消?
  6. 2020年Github项目排行Top20项目
  7. matlab求洛伦兹方程的解,[转载]用Matlab求解洛伦兹方程
  8. java怎么写函数_java构造函数怎么写
  9. 《十三邀》--李诞、马东、许知远
  10. Golang 语言的排序、结构体排序