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

我不得不更改数据库中的表,以便不是标准。primary keyincrements

这是迁移,

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:更改表添加主键settingssettings_code_primary(code)

我尝试过将正常值保留在那里,并在不同的迁移中修改表,但发生了同样的事情。incrementsid

关于我做错了什么的任何想法?

Laveral Version 5.4.23


答案 1

将其更改为字符串。

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

答案 2

推荐