У меня возникла странная проблема, когда я хочу создать таблицу с внешним ключом.Почему UNSIGNED не может использоваться для FOREIGN KEY в MYSQL?
Пожалуйста, обратитесь к следующему результату:
mysql> CREATE TABLE IF NOT EXISTS TL_USER(
-> user_id INT(10) UNSIGNED NOT NULL PRIMARY KEY,
-> nickname VARCHAR(45) NULL
-> ) ENGINE = InnoDB;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE IF NOT EXISTS TL_EVENT_COMMENT (
-> event_comment_id INT PRIMARY key ,
-> comment VARCHAR(45) NULL,
-> user_id INT NULL,
-> FOREIGN KEY (`user_id`) REFERENCES TL_USER (`user_id`)
-> ) ENGINE = InnoDB;
ERROR 1005 (HY000): Невозможно создать таблицу '' TL_EVENT_COMMENT (ERRNO: 150)
, когда я меняю «user_id INT (10) НЕОПРЕДЕЛЕННЫЙ НЕ НУЛЬНЫЙ ПЕРВИЧНЫЙ КЛЮЧ« to »user_id INT (10) NOT NULL PRIMARY KEY», оно работает.
mysql> CREATE TABLE IF NOT EXISTS TL_USER(
-> user_id INT(10) NOT NULL PRIMARY KEY,
-> nickname VARCHAR(45) NULL
-> ) ENGINE = InnoDB;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE IF NOT EXISTS TL_EVENT_COMMENT (
-> event_comment_id INT PRIMARY key ,
-> comment VARCHAR(45) NULL,
-> user_id INT NULL,
-> FOREIGN KEY (`user_id`) REFERENCES TL_USER (`user_id`)
-> ) ENGINE = InnoDB;
Query OK, 0 rows affected (0.02 sec)
проблема когда я добавить UNSIGNED для user_id, я получаю эту ошибку, если я не добавляю, он работает, может кто-нибудь объяснить, почему UNSIGNED не может быть использована для FOREIGN KEY?
Как я могу заставить его работать?
MYSQL версия 5.5.47-0ubuntu0.14.04.1.
Действительно, я так небрежен! спасибо. – seaguest