相关疑难解决方法(0)

#1071 - 指定密钥太长; 最大密钥长度为767字节

当我执行以下命令时:

ALTER TABLE `mytable` ADD UNIQUE (
`column1` ,
`column2`
);
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

#1071 - Specified key was too long; max key length is 767 bytes
Run Code Online (Sandbox Code Playgroud)

有关column1和column2的信息:

column1 varchar(20) utf8_general_ci
column2  varchar(500) utf8_general_ci
Run Code Online (Sandbox Code Playgroud)

我认为varchar(20)只需要21个字节,而varchar(500)只需要501个字节.所以总字节数是522,小于767.那么为什么我会得到错误信息呢?

#1071 - Specified key was too long; max key length is 767 bytes
Run Code Online (Sandbox Code Playgroud)

mysql varchar byte mysql-error-1071

521
推荐指数
23
解决办法
57万
查看次数

#1071 - 指定密钥太长; 最大密钥长度为1000字节

我知道这个标题的问题之前已经得到了解答,但请继续阅读.在发布之前,我已经仔细阅读了有关此错误的所有其他问题/答案.

我收到以下查询的上述错误:

CREATE TABLE IF NOT EXISTS `pds_core_menu_items` (
  `menu_id` varchar(32) NOT NULL,
  `parent_menu_id` int(32) unsigned DEFAULT NULL,
  `menu_name` varchar(255) DEFAULT NULL,
  `menu_link` varchar(255) DEFAULT NULL,
  `plugin` varchar(255) DEFAULT NULL,
  `menu_type` int(1) DEFAULT NULL,
  `extend` varchar(255) DEFAULT NULL,
  `new_window` int(1) DEFAULT NULL,
  `rank` int(100) DEFAULT NULL,
  `hide` int(1) DEFAULT NULL,
  `template_id` int(32) unsigned DEFAULT NULL,
  `alias` varchar(255) DEFAULT NULL,
  `layout` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`menu_id`),
  KEY `index` (`parent_menu_id`,`menu_link`,`plugin`,`alias`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么以及如何解决它?问题是 - 这个查询在我的本地计算机上完美运行,并且在我以前的主机上运行良好.Btw.it来自一个成熟的项目 - phpdevshell - 所以我猜这些家伙知道他们在做什么,虽然你从来不知道. …

mysql mysqldump phpmyadmin

85
推荐指数
6
解决办法
12万
查看次数

django.db.utils.OperationalError:(1071,'指定密钥太长;最大密钥长度为767字节')

我的模特:

class Course(models.Model):
    language = models.ForeignKey(Language)
    name = models.CharField(max_length=50, unique=True, default='course')
    title = models.CharField(max_length=1024, default='no title')
    foreign_title = models.CharField(max_length=1024, default='no title', blank=True)
    header = models.CharField(max_length=1024, default='', blank=True)
    description = models.TextField(null=True, blank=True)

    def __str__(self):
        return self.title

    def __unicode__(self):
        return u'%s' % self.title
Run Code Online (Sandbox Code Playgroud)

我添加"unique_together":

class Course(models.Model):
    language = models.ForeignKey(Language)
    name = models.CharField(max_length=50, unique=True, default='course')
    title = models.CharField(max_length=1024, default='no title')
    foreign_title = models.CharField(max_length=1024, default='no title', blank=True)
    header = models.CharField(max_length=1024, default='', blank=True)
    description = models.TextField(null=True, blank=True)

    class Meta:
        unique_together = ['language', 'name', 'title']

    def …
Run Code Online (Sandbox Code Playgroud)

python database django migrate mariadb

9
推荐指数
3
解决办法
1万
查看次数