laravel 5.4指定键太长,为什么数字191

时间:2017-05-07 13:38:04

标签: laravel

我知道这个问题已经讨论,解决或关闭了 但我想问的是,为什么数字是191?

Schema::defaultStringLength(191);
我试过:如果192,错了。 191,好的。 在此之后,我还编辑了database \ migrations \ xxx_user_table.php
改变这个

$table->string('name');

$table->string('name', 255);

然后运行php artisan migrate,没关系。 使用一些mysql工具查看用户表的架构, varchar的名称长度实际为255,其他列为191。

我看到了这些文章 @ Here is more information
@ https://laravel-news.com/laravel-5-4-key-too-long-error
@ Laravel migration: unique key is too long, even if specified
@ https://github.com/laravel/framework/issues/17508

这个: @ https://laravel.com/docs/master/migrations#creating-indexes

  

对于InnoDB表,索引键前缀长度限制为767字节   使用REDUNDANT或COMPACT行格式。例如,你可能会命中   此限制,列前缀索引超过255个字符   TEXT或VARCHAR列,假设一个utf8mb3字符集和   每个字符最多3个字节。

但为什么长度为255的名字还可以呢? 并且192 * 3 = 576,小于767,为什么192不行?

0 个答案:

没有答案