Ошибка в ограничении внешнего ключа таблицы univ / # sql -bf4_4: - PullRequest
0 голосов
/ 10 февраля 2020

Я не могу добавить внешний ключ со связями между участниками и таблицами кампуса. Для указанных полей c установлен первичный ключ. Типы данных также одинаковы.

Таблицы:

+------------------+-------------+------+-----+---------+-------+
| 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

ИЛИ

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

Специфика c Ошибка:

------------------------
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:

Это может быть что-то глупое, так как я эксперт в их создании. Пожалуйста, помогите!

1 Ответ

1 голос
/ 10 февраля 2020

Вы так близко, есть небольшая пропущенная вещь, которая является именем столбца первичного ключа (campusid) родительской таблицы (campus). Попробуйте использовать

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

или constraint members_campusid_fk часть (имя ограничения) может быть опущена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...