【MySQL8.0】创建外键时报错:3780

现象描述:

今天在给两个表建立外键约束时,报了3780的错误--具体描述如下:

Referencing column 'COMMENT_ID' and referenced column 'ID' in foreign key constraint 'REP_COM' are incompatible.

【MySQL8.0】创建外键时报错:3780_第1张图片

意思就是,主表ID和从表的COMMENT_ID这一列不兼容

这里附上两张表此字段的设置,主表:

【MySQL8.0】创建外键时报错:3780_第2张图片

从表:

【MySQL8.0】创建外键时报错:3780_第3张图片

解决办法:

资料(《mysql数据库应用案例教程》)提到mysql建立外键约束时应注意的点:

  1. 主表和从表必须使用InnoDB存储引擎

  1. 设置外键约束的字段和关联的主键必须具有相同的数据类型。

  1. 整数类型的大小和符号必须相同;

  1. 字符串类型的长度可以不相同,但对于非二进制字符串,字符集和排序规则必须相同。

根据以上注意点寻找病因,发现从表comment_id字段设置了无符号约束,而主表id字段没有设置,于是将主表id也设置了无符号约束后,再建立外键,成功!!!

你可能感兴趣的:(MySQL,mysql)