错误:1071,指定的密钥太长;最大密钥长度为 1000 字节

问题描述 投票:0回答:1

我想在数据库中导入 sql 文件,但出现此错误

1071, Specified key was too long; max key length is 1000 bytes

这是我的相关表的代码。

DROP TABLE IF EXISTS `model_has_permissions`;

CREATE TABLE `model_has_permissions` (
  `permission_id` int(10) unsigned NOT NULL,
  `model_type` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
  `model_id` bigint(20) unsigned NOT NULL,
  PRIMARY KEY (`permission_id`,`model_id`,`model_type`),
  KEY `model_has_permissions_model_id_model_type_index` (`model_id`,`model_type`),
  CONSTRAINT `model_has_permissions_permission_id_foreign` FOREIGN KEY (`permission_id`) REFERENCES `permissions` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
php mysql laravel innodb
1个回答
2
投票

A 计划:

model_type
中的字符数不要超过 191。

B 计划:标准化

model_type

计划 C:如果适用,将

model_type
更改为“字符集 ascii”。

其他选项:http://mysql.rjweb.org/doc.php/limits#767_limit_in_innodb_indexes

© www.soinside.com 2019 - 2024. All rights reserved.