FOREIGN KEY не применяется после сохранения в MYSQL 8 в управляемых базах данных digitalocean - PullRequest
0 голосов
/ 06 августа 2020

Я создал управляемые базы данных digitalocean для разработки. версия MYSQL была 8.0.20 Проблема в том, что после сохранения сценария SQL ошибки нет. таблица создана успешно. Но когда я go к таблице, после этого таблица не имеет примененного FOREIGN KEY к таблице. Я помещу свой код ниже до и после инцидента.

Это запрос перед вставкой.

CREATE TABLE `user_reg`  (
  `user_reg_id` int(0) NOT NULL AUTO_INCREMENT,
  `user_id` int(0) NULL DEFAULT NULL,
  PRIMARY KEY (`user_reg_id`) USING BTREE,
  INDEX `user_id`(`user_id`) USING BTREE,
  CONSTRAINT `user_reg_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `sp_user` (`user_bid`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

Это запрос после получения дамп из mysql.

CREATE TABLE `user_reg`  (
  `user_reg_id` int(0) NOT NULL AUTO_INCREMENT,
  `user_id` int(0) NULL DEFAULT NULL,
  PRIMARY KEY (`user_reg_id`) USING BTREE,
  INDEX `user_id`(`user_id`) USING BTREE,
  CONSTRAINT `"user_reg_ibfk_1"` FOREIGN KEY () REFERENCES `"sp_user"` () ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

Сервер MYSQL не поглотил внешние ключи.

FOREIGN KEY () REFERENCES `"sp_user"` () ON DELETE CASCADE ON UPDATE

1 Ответ

1 голос
/ 25 августа 2020

Измените и попробуйте Глобальный SQL режим ANSI_QUOTES

ANSI_QUOTES Изменения ", которые будут обрабатываться как`, символ кавычки идентификатора. Это может нарушить работу старых приложений MariaDB, которые предполагают, что "используется в качестве строкового символа кавычки.

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