首页 > 数据库 > mysql教程 > Laravel 迁移错误:如何修复'唯一密钥长度超出限制”?

Laravel 迁移错误:如何修复'唯一密钥长度超出限制”?

Susan Sarandon
发布: 2024-12-05 17:52:11
原创
894 人浏览过

Laravel Migration Error: How to Fix

Laravel 迁移错误:唯一密钥长度超出限制

当尝试使用迁移来迁移 Laravel 中的用户表时,开发人员可能会遇到错误:“[SQLSTATE[42000]:语法错误或访问冲突:1071 指定的键是太长;最大密钥长度为 767 字节。”当指定的唯一键长于最大允许长度时,通常会出现此错误。

问题陈述

提供的迁移尝试使用唯一键创建用户表在电子邮件栏上。但是,email 列的长度被指定为 320 个字符,超出了最大长度限制。

解决方案

1。减少电子邮件列长度

将电子邮件列的长度减少到较小的值,例如 250 或默认的 191 个字符。按如下方式调整迁移:

Schema::create('users', function(Blueprint $table)
{
    // ...

    $table->string('email', 250); // Update the email column length

    // ...
});
登录后复制

2.设置默认字符串长度 (Laravel 5.4 )

如果您使用 Laravel 5.4 或更高版本,您可以在 AppServiceProvider.php 文件的 boot 方法中设置默认字符串长度:

public function boot()
{
    Builder::defaultStringLength(191);
}
登录后复制

这将为迁移中创建的所有字符串列设置默认长度 191 个字符,确保唯一键不超过允许的长度长度。

以上是Laravel 迁移错误:如何修复'唯一密钥长度超出限制”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板