Я не уверен, почему у меня всегда возникают проблемы с FOREIGN KEYs, но у меня есть еще один.Ошибка 150 при добавлении FOREIGN KEY в таблицу MySQL
Когда я бегу:
ALTER TABLE wishlist ADD CONSTRAINT FOREIGN KEY (user_id) REFERENCES user (user_id);
я получаю:
Can't create table (errno: 150)
Обе таблицы существует. Оба столбца существуют, и оба они одинаковы - bigint (20). user.user_id - первичный ключ, но wishlist.user_id - нет. Оба NOT NULL
Вот начало пользовательской таблицы (я усеченный его легко читать):
+-----------------+------------------------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------------------+------+-----+-------------------+----------------+
| user_id | bigint(20) | NO | PRI | NULL | auto_increment |
| salt2 | varchar(24) | YES | | NULL | |
| gender | enum('MAN','WOMAN','EITHER') | NO | | NULL | |
| user_name | varchar(255) | NO | | NULL | |
| password | varchar(255) | NO | | NULL | |
| user_email | varchar(255) | NO | | NULL | |
| phone | varchar(20) | NO | | NULL | |
И в wishlist
стол:
+-----------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------+------+-----+---------+----------------+
| wish_id | int(11) | NO | PRI | NULL | auto_increment |
| link_hash | char(32) | YES | MUL | NULL | |
| user_id | bigint(20) | NO | | NULL | |
+-----------+------------+------+-----+---------+----------------+
Я не создаю таблицу который был сброшен.
Можете ли вы показать определения таблиц? – Mihai
Вы воссоздаете таблицу, которая была удалена? – Mureinik