Я пытаюсь создать схему ER в Workbench, но получаю сообщение об ошибке. Я использую mySql Workbench для Mac.
Это сообщение об ошибке, которое я получаю:
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '
INDEX `city_id_fk_idx` (`city_id` ASC) VISIBLE,
INDEX `county_id_idx` (`cou' at line 13
SQL Code:
-- -----------------------------------------------------
-- Table `k00243666_property_bubble`.`addresses`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `k00243666_property_bubble`.`addresses` (
`address_id` INT NOT NULL AUTO_INCREMENT,
`address1` VARCHAR(45) NULL,
`address2` VARCHAR(45) NULL,
`eircode` VARCHAR(7) NULL,
`town_id` INT NULL,
`city_id` INT NULL,
`county_id` INT NULL,
PRIMARY KEY (`address_id`),
INDEX `town_id_fk_idx` (`town_id` ASC) VISIBLE,
INDEX `city_id_fk_idx` (`city_id` ASC) VISIBLE,
INDEX `county_id_idx` (`county_id` ASC) VISIBLE,
CONSTRAINT `town_id_fk`
FOREIGN KEY (`town_id`)
REFERENCES `k00243666_property_bubble`.`town` (`town_id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `city_id_fk`
FOREIGN KEY (`city_id`)
REFERENCES `k00243666_property_bubble`.`city` (`city_id`)
ON DELETE NO ACTION
ON UPDATE CASCADE,
CONSTRAINT `county_id`
FOREIGN KEY (`county_id`)
REFERENCES `k00243666_property_bubble`.`county` (`county_id`)
ON DELETE NO ACTION
ON UPDATE CASCADE)
ENGINE = InnoDB
SQL script execution finished: statements: 5 succeeded, 1 failed
Fetching back view definitions in final form.
Nothing to fetch
Кто-нибудь знает, почему я получаю эту ошибку?






Я предполагаю, что ваша версия MariaDB не поддерживает VISIBLE или INVISIBLE применительно к определению индекса. В любом случае индексы должны быть видны по умолчанию, поэтому вам даже не нужно указывать VISIBLE. Попробуйте использовать этот синтаксис:
INDEX town_id_fk_idx (town_id),
INDEX city_id_fk_idx (city_id),
INDEX county_id_idx (county_id)
Вот ссылка на запрос функции, сделанный в MariaDB. Нет синтаксиса INVISIBLE для отключения индексов оптимизатора. Однако есть альтернатива:
ALTER TABLE addresses DISABLE KEYS;
Это сделает все индексы невидимыми для оптимизатора.
@LaurDragulin Добро пожаловать в Stack Overflow. Сайт так не работает. Если у вас сейчас проблема, существенно отличающаяся от того, что вы задали, вам нужно открыть новый вопрос. SO - это не блог, где вы постоянно спрашиваете о дальнейших действиях.
Я разобрался, у меня также были дубликаты ограничений, исправил сейчас, большое спасибо Тим Бигелейзен
Также спасибо этому парню stackoverflow.com/a/20512955/10739429, это было исправлением моей второй ошибки.
Если этот ответ решил вашу проблему, вы можете принять его, щелкнув зеленую галочку слева.
Спасибо, я думаю, что это решило часть проблемы, теперь я получаю другую ошибку: Выполнение сценария SQL на сервере ОШИБКА: Ошибка 1005: Невозможно создать таблицу
k00243666_property_bubble.user_status(номер ошибки: 121 «Повторяющийся ключ при записи или обновлении» )