字符串作为Laravel迁移中的主键

时间:2017-05-28 15:56:58

标签: php laravel migration primary-key artisan

我必须更改数据库中的表格,以使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_primarycode

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

我做错了什么想法?

Laveral Version 5.4.23

1 个答案:

答案 0 :(得分:12)

将其更改为字符串。

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