tnblog
首页
视频
资源
登录

Navicat 在添加mysql表的外键时报错1005,error150

7540人阅读 2020/4/28 17:33 总访问:449996 评论:0 收藏:0 手机
分类: 随笔
  1. 前言:hello 大家好  
  2. 我们又见面了  
  3. 今天给大家分享一下Navicat 在添加mysql表的外键时报错1005 的情况。
  4. 可能没多大用 但还是简单的记录一下。
  5. 话不多说 直接开整
  1. 说到外键这个东西真的是让人又爱又恨 怎么说呢 
  2. 爱是因为它可以优化数据检索速度,为开发人员省下了不少工作 恨是因为它的关联性 和维护起来有点麻烦  
  3. 但是无奈 还是得用到它。
  4. MySQL 表外键
  5. 外键是一个在关联式表中符合另一个表主键的栏位。外键可以用作交叉参考表。
  6. 在表设计器的 外键 选项卡管理表外键。只需简单地点击或双击一个外键栏位来编辑。右击来显示弹出菜单或使用外键工具栏,能让你创建新的、编辑或删除选择的外键栏位。
  7. 注意:MySQL 3.23.44 或以上版本支持外键。
  8. 添加外键
  9. 添加一个外键
  10. 在表设计器中打开表。 
  11. 打开 外键 选项卡。 
  12. 右击并在弹出菜单中选择 添加外键 或在工具栏点击 添加外键。 
  13. 编辑外键属性。 
  14. 注意:两个表必须是 InnoDB 类型(或如果你有 solidDB 类型 solidDB for MySQL)。在参考表中,必须有一个索引,在外键列以相同排序编入第一列。由 MySQL 4.1.2 开始,如果该索引不存在,它将会在参考表中自动创建。
  15. 编辑外键
  16. 编辑一个外键
  17. 在表设计器中打开表。 
  18. 打开 外键 选项卡。 
  19. 只需点击或双击外键来编辑。 
  20. 注意:MySQL 4.0.13 或以上版本支持。
  21. 删除外键
  22. 删除一个外键
  23. 在表设计器中打开表。 
  24. 打开 外键 选项卡。 
  25. 在要删除的外键上右击并在弹出菜单中选择 删除外键 或在工具栏点击 删除外键。 
  26. 在对话窗口确认删除。 
  27. 注意:MySQL 4.0.13 或以上版本支持。
  28. Error 1005: can not create table(Error150)
  29. 首先确保自己的表为innoDB类型,若不是,可以更新表的引擎
  30. alter table work engine =innodb;
  31. 然后可以查看表(这里work为表名)的结构
  32. show create table work;
  33. 若Navicat依然报错,建议用命令行添加外键约束
  34. alter table 表A add constraint 外键名 foreign key (person_no) references 表C(person_no) ON UPDATE CASCADE ON DELETE CASCADE
  35. ON DELETE
  36. restrict(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。
  37. no action:意思同restrict.即如果存在从数据,不允许删除主数据。
  38. cascade(级联):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。
  39. set null:当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null
  40. ON UPDATE
  41. restrict(约束):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。
  42. no action:意思同restrict.
  43. cascade(级联):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。
  44. set null:当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。
  45. 注:NO ACTION和RESTRICT的区别:只有在及个别的情况下会导致区别,前者是在其他约束的动作之后执行,后者具有最高的优先权执行。
  46. 到这就结束了 感兴趣的小伙伴可以参考下面这个链接
  47. 原文链接:
  48. https://blog.csdn.net/SXT_fighting/article/details/76231985


  1. 每日一笑,今天你笑了吗?
  2. 1.某程序员夫妇新婚,
  3. 一年之后喜得贵子,取名"灵灵"
  4. 过一年后又喜得一女,取名"灵伊"
  5. 两年之后得子"伊灵"
  6. 两年之后,夫妇商定为得圆满再生一子,取名"伊伊"
  7. 不料产科发现所怀为双胞胎,夫欲减胎,妻不允,冥思许久,对夫曰:"老五就叫'忆初'吧…"
  8. 2.程序员的读书历程:
  9. x语言入门 —> x语言应用实践 —> x语言高阶编程 —> x语言的科学与艺术 —>编程之美 —>编程之道 —>编程之禅—>颈椎病康复指南。



评价

Navicat12破解教程

1.下载Navicat12并安装,打开Navicat12 点击14天试用,关闭软件2.下载注册机:Navicat_Keygen_Patch_v4.8_By_DFoX个人百度...

Navicat 连接mysql时报错代码1405

好久不见我们又见面了今天给大家分享的是Navicat连接mysql时报1405的错 话不多说直接上图片遇到这个错时第一种情况:看一...

ABP 框架之Navicat 误删数据库怎么恢复

前言:hello 大家好 我们又见面了 我是小付今天我tmd手贱 不小心把数据库干没了一言难尽啊,话不多说一起来看看吧。上次我...

Navicat 15 破解版

Navicat Premium 15 永久破解激活工具及安装教程(亲测可用) - MarchXD - 博客园 (cnblogs.com)

Navicat存储的sql在哪

在右边这个查询里边的: 下次要使用的时候也方便直接打开 如果要查看sql的文件地址,可以直接右键打开文件位置就可以了。...

Navicat把查询结果导出excel

执行sql后有一个导出结果就可以选择导出excel 注意一般要执行后才会执行这个菜单,而且好像导出一次后这个菜单会变白,不...

mysql主从复制+读写分离

使用Mysql读写分离和主从复制的原因:*单台MySQL服务器的安全性,高可用性,高并发都是不满足实际的生产需要。介绍:1.MySQ...

mysql控制台插入中文数据报错1366解决

计算机配置: windows系统.数据库:MySQL5.5.如图 : 下图为表结构信息:通过 show full columns from userinfo;查询所得 na...

mysql 游标创建

游标:可以来存储一个结果集,可以通过遍历来访问到每一个数据需求:分表数据。 把一张表的数据根据需求分离,创建不同的表...

mysql 存储过程报错:delimiter

最近刚学sql,学到了存储过程,每当练习的时候就一直出现问题。 现在记录CREATEPROCEDUREproc_out(OUTstuidINT) begin se...

mysql 视图的(增删改 查)

要显示视图的定义,需要在SHOWCREATEVIEW子句之后指定视图的名称, 我们先来创建几张表,完事后在进行演示:--用户信息表...

mysql概述与安装配置

1996年首次发行,对于初学者来说,MySQL很容易上手MySQL数据库MySQL 是开源的,所以你不需要支付额外的费用。MySQL 支持大...

mysql存储引擎和数据类型

一 了解MySQL存储引擎什么是MySQL存储引擎?MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技...

本地mysql重置密码

原理:通过跳过表授权,跳过密码直接在表里更新密码1. 找到my.ini一般在C:\Program Files\MySQL\MySQL Server 5.7\bin12345...
每一段路程,都是一种领悟
排名
10
文章
100
粉丝
17
评论
34
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
要发光,而不是被照亮。