Мы ожидаем увидеть эту ошибку, если типы первичного и внешнего ключа не совпадают точно. Хотя оба значения имеют целое число с шириной 1, я предполагаю, что один из столбцов INT
в отношении ключей не подписан, а другой - со знаком. Возможное исправление - сделать оба столбца без знака:
ALTER TABLE users MODIFY collegelinkId INT(10) UNSIGNED NOT NULL;
ALTER TABLE college MODIFY id INT(10) UNSIGNED NOT NULL;
Edit:
Я был не прав, о чем свидетельствуют ваши последние комментарии под моим ответом. Другая возможность состоит в том, что вы создали две таблицы, используя разные механизмы баз данных. Например, если вы создали users
с использованием InnoDB, но college
с использованием MyISAM, вы все равно можете получить эту ошибку. Чтобы исправить это, замените движок (и) на таблицах на тот же тип.
Обратите внимание, что еще одна возможность состоит в том, что эти два столбца имеют разные параметры сортировки. Но это действительно спорный вопрос, поскольку оба столбца числовые, а не текстовые.