Как решить проблему «Неправильно сформировано ограничение внешнего ключа» - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать таблицу базы данных с именем wp_tokens с отношением внешнего ключа к другой таблице с именем wp_users. Однако каждый раз, когда я пытаюсь запустить таблицу SQL для создания, я получаю сообщение об ошибке «Ограничение внешнего ключа сформировано неправильно». Я пробовал несколько повторных редактирований одного и того же кода, но я просто не могу понять, что происходит.

Это код для wp_users

CREATE TABLE `wp_users` (
    `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
    `user_login` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
    `user_pass` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
    `user_nicename` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
    `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
    `user_url` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
    `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
    `user_status` int(11) NOT NULL DEFAULT '0',
    `display_name` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
    PRIMARY KEY (`ID`),
    KEY `user_login_key` (`user_login`),
    KEY `user_nicename` (`user_nicename`),
    KEY `user_email` (`user_email`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 
COLLATE=utf8mb4_unicode_ci

Это SQL для wp_tokens

CREATE TABLE `wp_tokens` (
    id mediumint(9) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) NOT NULL,
    `token` varchar(255) NOT NULL,
    PRIMARY KEY  (id),
    FOREIGN KEY (user_id) REFERENCES wp_users (`ID`)
) 

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 08 января 2019

Значение unsigned важно - типы должны быть идентичными. Попробуйте это:

CREATE TABLE `wp_tokens` (
      id mediumint(9) NOT NULL AUTO_INCREMENT,
      `user_id` bigint(20) unsigned NOT NULL,
      `token` varchar(255) NOT NULL,
      PRIMARY KEY  (id),
      FOREIGN KEY (user_id) REFERENCES wp_users (`ID`)
) 

Здесь - тестер.

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