My SQL Script erro 1071 - не работает ДОБАВИТЬ УНИКАЛЬНО или ИЗМЕНИТЬ ДВИГАТЕЛЬ
`CREATE TABLE IF NOT EXISTS `Odin`.`Usuario` (
`CodUsuario` INT NOT NULL AUTO_INCREMENT,
`CodTipoUsuario` INT NOT NULL,
`CodConsultorTecnico` INT NULL,
`CodProdutor` INT NULL,
`Login` VARCHAR(255) CHARACTER SET 'utf8mb4' NOT NULL,
`Senha` VARCHAR(32) CHARACTER SET 'utf8mb4' NOT NULL,
`Ativo` TINYINT(1) NOT NULL,
`MaiorDataRegistrada` DATETIME NOT NULL,
`DataLimite` DATETIME NOT NULL DEFAULT '01/01/2014',
`MaxFazendas` INT NOT NULL DEFAULT 0,
`MaxFemeas` INT NOT NULL DEFAULT 0,
`CodUserWeb` INT NOT NULL DEFAULT 0,
`CodEstudante` INT NULL,
`UltimoBackup` DATETIME NULL,
PRIMARY KEY (`CodUsuario`),
UNIQUE INDEX `UQ__Usuario__00000000000006D8` (`Login` ASC),
CONSTRAINT `FK_Usu_ref_Est`
FOREIGN KEY (`CodEstudante`)
REFERENCES `Odin`.`Estudante` (`CodEstudante`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `Fk_Usuario_Ref_Consultor`
FOREIGN KEY (`CodConsultorTecnico`)
REFERENCES `Odin`.`ConsultorTecnico` (`CodConsultorTecnico`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `Fk_Usuario_Ref_Produtor`
FOREIGN KEY (`CodProdutor`)
REFERENCES `Odin`.`Produtor` (`CodProdutor`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `Fk_Usuario_Ref_TipoUsuario`
FOREIGN KEY (`CodTipoUsuario`)
REFERENCES `Odin`.`ConfTipoUsuario` (`CodTipoUsuario`)
ON DELETE NO ACTION
ON UPDATE NO ACTION) `
Я пробовал такие решения, как: ENGINE=InnoDB CHARSET DEFAULT = utf8 COLLATE = utf8_unicode_ci; или ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ =utf16 COLLATE=utf8_unicode_ci;
или ДОБАВИТЬ УНИКАЛЬНЫЙ
и все равно продолжаем с ошибкой:
1071 - указанный ключ был слишком длинным; максимальная длина ключа 767 байт
Кто-нибудь может мне помочь? Спасибо
1 ответ
Ты используешь utf8mb4
что составляет 1-4 байта на символ.
Вы выбрали VARCHAR(255)
- 255 символов * 4 байта = 1020.
Попробуйте с меньшим количеством символов. подобно VARCHAR(191)
,
Также загляните в innodb_large_prefix
,