【问题标题】:String as Primary Key in Laravel migration字符串作为 Laravel 迁移中的主键
【发布时间】:2017-10-28 23:35:36
【问题描述】:

我不得不更改数据库中的一个表,以使 primary key 不是标准的 increments

这是迁移,

public function up()
{
    Schema::create('settings', function (Blueprint $table) {
        $table->text('code', 30)->primary();
        $table->timestamps();
        $table->text('name');
        $table->text('comment');
    });
}

但是,MySQL 不断返回,

语法错误或访问冲突:1170 BLOB/TEXT 列“代码”用于 没有密钥长度的密钥规范(SQL:alter table settings 添加主键settings_code_primary(code)

我尝试将正常的 increments id 留在其中并在不同的迁移中修改表,但同样的事情发生了。

对我做错了什么有任何想法吗?

Laveral Version 5.4.23

【问题讨论】:

    标签: php laravel migration primary-key laravel-artisan


    【解决方案1】:

    把它改成字符串。

    $table->string('code', 30)->primary();
    

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 2015-03-31
      • 2011-05-04
      • 2018-01-09
      • 1970-01-01
      • 2015-04-22
      • 2020-06-01
      • 2021-03-20
      • 2014-12-28
      相关资源
      最近更新 更多