mysql - 在 TINYTEXT 列上使用主键创建表会导致错误 : MySQL #1071 'Specified key was too long; max key length is 255 bytes'

标签 mysql dreamhost

我已经有一段时间没有编写 PHP 代码了。我的网站,我前段时间用 PHP 编写的,由一家共享托管公司运行,当脚本通过 mysql_query 执行以下查询时,开始在日志中给我以下错误。 :

CREATE TABLE tbl (idx TINYTEXT, PRIMARY KEY(idx(255)))

错误本身:

MySQL #1071 'Specified key was too long; max key length is 255 bytes'

它工作了很多年。那么现在有什么问题呢?

最佳答案

如果最大 key 长度为 255 个字节并且您使用的是 UTF8 编码,那么每个字符最多可以有 4 个字节。

因此,最大值为 63 个字节。这有效:

CREATE TABLE tbl (
    idx TINYTEXT,
    PRIMARY KEY (idx(63))
);

关于mysql - 在 TINYTEXT 列上使用主键创建表会导致错误 : MySQL #1071 'Specified key was too long; max key length is 255 bytes' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57350513/

相关文章:

mysql - mysql中concat和limit的语法错误

python - 为什么 Flask 为与我的应用程序位于同一目录中的文件提供 404

git - 推送到 webroot 之上的托管项目

ruby - Sinatra - 当它在线时我如何调试它?

mysql - 从 postgresql 搜索并通过 mysql 过滤

php - PDO:是否需要 try-catch?

php - 如何从access数据库导出mysql?

c#数据库选择然后插入。但是值为0

python - 无法在 Dreamhost 共享主机上使用 Passenger WSGI 运行 Flask

mysql - Dreamhost:MySQL 外键