web-dev-qa-db-ja.com

Laravel migrationの主キーとしての文字列

データベース内のテーブルを変更して、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列 'code'がキーの指定なしでキーの指定に使用されました(SQL:alter table settings add primary key settings_code_primarycode

通常のincrementsidをそのままにして、別の移行でテーブルを変更しようとしましたが、同じことが起こります。

私が間違っていることのアイデアはありますか?

Laveral Version 5.4.23

7
DGeo

文字列に変更します。

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