表univ /#sql-bf4_4的外键约束错误:

问题描述 投票:0回答:1

我无法添加具有成员和校园表之间关系的外键。特定字段设置为主键。数据类型也相同。

这些表是:

+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| memberid         | int(11)     | NO   | PRI | NULL    |       |
| lastname         | char(30)    | NO   |     | NULL    |       |
| firstname        | char(30)    | NO   |     | NULL    |       |
| campusaddress    | varchar(30) | NO   |     | NULL    |       |
| campusphone      | int(11)     | NO   |     | NULL    |       |
| campusid         | int(11)     | NO   |     | NULL    |       |
| positionid       | int(11)     | NO   |     | NULL    |       |
| contractduration | int(11)     | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
8 rows in set (0.00 sec)

mysql> desc campus;
+----------------+----------+------+-----+---------+-------+
| Field          | Type     | Null | Key | Default | Extra |
+----------------+----------+------+-----+---------+-------+
| campusid       | int(11)  | NO   | PRI | NULL    |       |
| campusname     | char(30) | NO   |     | NULL    |       |
| street         | char(30) | NO   |     | NULL    |       |
| city           | char(30) | NO   |     | NULL    |       |
| state          | char(15) | NO   |     | NULL    |       |
| pin            | int(11)  | NO   |     | NULL    |       |
| phone          | int(11)  | NO   |     | NULL    |       |
| campusdiscount | int(11)  | NO   |     | NULL    |       |
+----------------+----------+------+-----+---------+-------+
8 rows in set (0.00 sec)

ALTER TABLE members add foreign key (campusid) references campus;
ERROR 1215 (HY000): Cannot add foreign key constraint

OR

alter table members add constraint members_campusid_fk foreign key(campusid) references campus;
ERROR 1215 (HY000): Cannot add foreign key constraint

特定错误:

------------------------
LATEST FOREIGN KEY ERROR
------------------------
2020-02-10 09:23:38 0x2ccc Error in foreign key constraint of table univ/#sql-bf4_4:
 foreign key (positionid) references position:
Syntax error close to:

这可能有些愚蠢,因为我是制作这些的专家。请帮助!

mysql syntax foreign-keys
1个回答
0
投票

您是如此接近,有一点点遗漏的是父表(campusid)的主键列名称(campus)。考虑使用

alter table members 
  add constraint members_campusid_fk 
  foreign key(campusid) references campus(campusid)  

constraint members_campusid_fk部分(约束的名称)可以省略。

© www.soinside.com 2019 - 2024. All rights reserved.