programing

Laravel 마이그레이션 기본(또는 키) "식별자 이름이 너무 깁니다."

stoneblock 2023. 9. 26. 21:56

Laravel 마이그레이션 기본(또는 키) "식별자 이름이 너무 깁니다."

복합 기본 키를 지정하는 간단한 Laravel 마이그레이션 파일이 있습니다.

// ...

public function up()
{
    Schema::create('my_super_long_table_name', function($table)
    {
        $table->integer('column_1');
        $table->integer('column_2');
        $table->integer('column_3');

        $table->primary(['column_1', 'column_2', 'column_3']);
    });
}

// ...

그리고 달릴때는php artisan migrate다음 오류가 발생합니다.

SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'my_super_long_table_name_column_1_column_2_column_3' is too long

키를 생성할 때 키 이름을 지정하기만 하면 됩니다(두 번째 인수 포함).primary).

$table->primary(['column_1', 'column_2', 'column_3'], 'my_long_table_primary');

다음 분.

오류가 있는 경우 다음과 같이.You have an error in your SQL syntax ...이 수정 후 키 이름에 대해 데이터베이스 엔진에 의해 예약된 단어를 사용하지 않는지 확인하십시오.

예: MySQL: http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html

팁:primary예약되어 있으므로 사용하지 마십시오 ;)

언급URL : https://stackoverflow.com/questions/28626906/laravel-migration-primary-or-key-identifier-name-is-too-long