Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Unique 1500 varchar field error (#1071 - Angegebener Schlüssel war zu lang)

Da Sie URLs im link speichern -Spalte, müssen Sie dafür nicht unbedingt UTF8 verwenden, da URLs nur ASCII-Zeichen enthalten können. Angabe einer reinen ASCII-Zeichenkodierung für Ihren link -Spalte können Sie sogar die maximale Länge auf 3072 Zeichen erhöhen.

CREATE TABLE IF NOT EXISTS `pages` (
  `link` varchar(1500) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
  `domain` varchar(255) NOT NULL,
  `lastvisited` datetime DEFAULT NULL,
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  UNIQUE KEY `link` (`link`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ROW_FORMAT=DYNAMIC;

(Aktualisiert gemäß dem Vorschlag von @eggyal für ascii_bin Sortierung)