我无法添加具有成员和校园表之间关系的外键。特定字段设置为主键。数据类型也相同。
这些表是:
+------------------+-------------+------+-----+---------+-------+
| 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:
这可能有些愚蠢,因为我是制作这些的专家。请帮助!
您是如此接近,有一点点遗漏的是父表(campusid
)的主键列名称(campus
)。考虑使用
alter table members
add constraint members_campusid_fk
foreign key(campusid) references campus(campusid)
或constraint members_campusid_fk
部分(约束的名称)可以省略。