Назад | Перейти на главную страницу

Синтаксическая ошибка MySQL Migration Toolkit при создании объекта диаграммы сервера Sql

У меня есть еще одна синтаксическая ошибка при переносе диаграммы. Я не уверен, что эта диаграмма необходима, но было бы неплохо иметь плавную миграцию, и это все, что мешает.

Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '-1) NULL, PRIMARY KEY (' diagram_id '), UNIQUE INDEX' UK_principal_name '(' pri 'в строке 6

И синтаксис имеет VARBINARY(-1) которого я никогда раньше не видел. Это проблема?

DROP TABLE IF EXISTS `Fonebook_dbo`.`sysdiagrams`;
CREATE TABLE `Fonebook_dbo`.`sysdiagrams` (
  `name` VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `principal_id` INT(10) NOT NULL,
  `diagram_id` INT(10) NOT NULL AUTO_INCREMENT,
  `version` INT(10) NULL,
  `definition` VARBINARY(-1) NULL,
  PRIMARY KEY (`diagram_id`),
  UNIQUE INDEX `UK_principal_name` (`principal_id`, `name`)
)
ENGINE = INNODB;

У меня нет опыта работы с типом данных, но я предполагаю, что проблема:

Допустимая максимальная длина для BINARY и VARBINARY такая же, как и для CHAR и VARCHAR, за исключением того, что длина для BINARY и VARBINARY - это длина в байтах, а не в символах.

Так что да, я не думаю, что отрицательный 1 байт - допустимая длина.

VARBINARY (-1), -1 - длина двоичного файла. Установите правильную длину, например 100

  `definition` VARBINARY(100) NULL,