mysql --->mysql 外键总结
2024-08-31 23:19:03
mysql 外键总结
1.设置外键MySQL ERROR 1005 错误
MySQL ERROR 1005 (主要是约束不一样导致的)例如:
1、两表外键的引用类型不一样,如主键是int外键是char,字段长度
2、两表主键和外键的字符编码不一致,也可能存储引擎不一样,支持外键的存储引擎是innodb2.MySQL外键约束删除时和更新时各取值的含义
MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。在创建索引的时候,可以指定在删除、更新父表时,对子表进行的相应操作,包括RESTRICT、NO ACTION、SET NULL和CASCADE。其中RESTRICT和NO ACTION相同,是指在子表有关联记录的情况下父表不能更新;CASCADE表示父表在更新或者删除时,更新或者删除子表对应记录;SET NULL则是表示父表在更新或者删除的时候,子表的对应字段被SET NULL。
-3.因为只有InnoDB引擎才允许使用外键,所以,我们的数据表必须使用InnoDB引擎。
4.如果主从表只是普通的外键约束,则在更新/删除主表记录时,需要先更新/删除从表记录,否则将会报外键约束异常,导致操作失败,如下:
Cannot delete or update a parent row: a foreign key constraint fails (`test`.`goods`, CONSTRAINT `goods_ibfk_1` FOREIGN KEY (`shop_id`) REFERENCES `shop` (`id`))
最新文章
- 简易版的TimSort排序算法
- aes rsa加密
- web.config中customErrors与httpErrors的区别
- Mysql-学习笔记(==》建表修改一)
- 《DevOps故障排除:Linux服务器运维最佳实践》读书笔记
- 最简单的Java调用C/C++代码的步骤
- mac配置svn服务器
- linux exec函数家族
- ~/microwindows-0.89pre8/src/bin$ ./nano-X error:Cannot bind to named socket
- ORA-01950: 对表空间 'NAMETABLESPACE' 无权限
- linux 消息队列例子
- 【Unity编程】欧拉角与万向节死锁(图文版)
- 剑指Offer——Trie树(字典树)
- 开源 serverless 产品原理剖析 - Kubeless
- vue中@contextmenu在pc和mac中的区别
- Windows下安装并启动mongodb
- Unity WidgetsUI CreateTaskView Demo
- [py]python __file__ 与argv[0]
- CSS------如何让大小不一样的div顶部对齐
- Python学习(21):Python函数(5):变量作用域与闭包
热门文章
- Struts2标签库常用标签(转)
- iptables 基础
- 从头学pytorch(六):权重衰减
- appium工作流程解析
- 天猫SSM项目学习记录(一)----第一个相对完整的SSM项目
- Serverless 实战 —— Funcraft + OSS + ROS 进行 CI/CD
- @程序员,你们还在用网上乱找的方法导入导出Excel么,我们给你造了个轮子!!!!!
- Mysql 最全查询语句
- C++简单实现Log日志类轻量级支持格式化输出变量
- 【题解】HDU Homework(倍增)