Задать вопрос
@Whey

Почему не получается создать связь с другой таблицей?

Работаю с MySQL Workbench. Создал 3 таблицы в графическом интерфейсе, создал связь между ними.
Изображение
5e7781ed85f5e773630508.png

После этого я экспортирую в SQL файл, и пытаюсь запустить, но выдает ошибку:
Изображение
5e77823a3c86c938047969.png

Пробовал запускать через командную строку, результат тот же. Думаю, что проблема из-за связей, потому что таблицы Role, и Organization создаются без проблем, но в чем именно допустил ошибку?
Таблица Organization:
CREATE TABLE IF NOT EXISTS `test`.`Organization` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(45) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

Таблица Role:
CREATE TABLE IF NOT EXISTS `test`.`Role` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(50) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

Таблица User:
CREATE TABLE IF NOT EXISTS `test`.`User` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(100) NULL,
  `Password` VARCHAR(50) NULL,
  `Organization_id` INT NOT NULL,
  `Role_id` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_User_Organization1_idx` (`Organization_id` ASC) VISIBLE,
  INDEX `fk_User_Role1_idx` (`Role_id` ASC) VISIBLE,
  CONSTRAINT `fk_User_Organization1`
    FOREIGN KEY (`Organization_id`)
    REFERENCES `test`.`Organization` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_User_Role1`
    FOREIGN KEY (`Role_id`)
    REFERENCES `test`.`Role` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
  • Вопрос задан
  • 471 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что вы работаете не с MySQL, а с MariaDB. У неё нет опции VISIBLE/INVISIBLE для индексов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы