`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) `
我尝试过以下解决方案:引擎=InnoDB 默认字符集=UTF8 COLLATE=utf8_unicode_ci;或引擎=InnoDB 默认字符集=UTF16 COLLATE=utf8_unicode_ci;
或添加唯一
并且仍然继续错误:
1071 - 指定的密钥太长;最大密钥长度为 767 字节
有人可以帮助我吗?谢谢
您正在使用utf8mb4
,即每个字符 1-4 个字节。
您选择了 VARCHAR(255)
- 255 个字符 * 4 字节 = 1020。
尝试使用较少的字符。喜欢VARCHAR(191)
.
也看看innodb_large_prefix
.