0
  `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 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; または ENGINE=InnoDB DEFAULT CHARSET=utf16 COLLATE=utf8_unicode_ci;

またはユニークを追加

それでもエラーが続きます:

1071 - 指定されたキーが長すぎます。キーの最大長は 767 バイトです

誰かが私を助けることができますか?ありがとうございました

4

1 に答える 1

1

utf8mb41文字あたり1〜4バイトを使用しています。

選択したのはVARCHAR(255)- 255 文字 * 4 バイト = 1020 です。

少ない文字数で試してください。のようにVARCHAR(191)

もご覧くださいinnodb_large_prefix

于 2016-11-08T12:49:44.263 に答える