使用Navicat for mysql生成E-R图,添加外键约束

1. E-R图生成

用 mysql的Navicat Premium图形界面工具 。 可以生成E-R图。
把你的数据库选中后右键 , 选择“逆向表到模型” 就可以了

2.添加外键约束

   一共有七列,每列含义如下:

 (1) “名”:  可不填,保存后系统会自动生成。

 (2) “字段”:需要设置外键的字段。

 (3)“参考模式”: 外键关联的数据库。

 (4) “参考表”: 关联的表

 (5)“参考字段”:关联外表字段

 (6)“删除时":就是删除的时候执行的动作。这里一般选择setNull,意思就是当关联的表删除以后,字段会设置为null。

 (7)“ 更新时”: 就是更新的时候执行的动作。这里一般选择CASCADE,意思就是当关联的表更新以后,字段会设置为级联更新。 

3.  添加外键时出现报错:外键不兼容 are  incompatible

查找原因是:

1)要关联的字段长度不一致。解决办法:修改长度

2)两个要关联的表编码不一样。

原因分析:

1. 导出表编码:选中表—右键—转储SQL文件—仅结构,发现两个表的关联字段的编码不一样

一个是:  `user_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,

另一个是:`user_id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,

2. 在navicat查看字段编码

解决办法:直接在navicat修改字段编码,让两边一致

 

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值