Larabel MariaDB errno:150 "외부 키 제약조건이 잘못 형성되었습니다"
투고 이행:
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('channel_id');
$table->foreign('channel_id')->references('id')->on('channels');
$table->string('title');
$table->text('content');
$table->string('status')->default('published');
$table->string('type');
$table->string('published_at');
$table->timestamps();
});
및 채널:
Schema::create('channels', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('description');
$table->string('channel_id');
$table->timestamps();
});
실행했을 때php artisan migrate
다음 오류 메시지가 표시되었습니다.
[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1005 Can't create table `TBL_NAME`.`#sql-
2221_1f76c` (errno: 150 "Foreign key constraint is incorrectly formed") (SQ
L: alter table `posts` add constraint `posts_channel_id_foreign` foreign ke
y (`channel_id`) references `channels` (`id`))
[PDOException]
SQLSTATE[HY000]: General error: 1005 Can't create table `TBL_NAME`.`#sql-
2221_1f76c` (errno: 150 "Foreign key constraint is incorrectly formed")
저는 Larabel 5.3을 사용하고 있으며, 이행은 MySQL을 사용하는 로컬 컴퓨터에서 완벽하게 동작합니다.그러나 Larabel 프로젝트를 서버에 업로드하고 서버에서 MariaDB를 사용하고 있습니다.그 에러 메세지가 표시됩니다.
에서posts
테이블 마이그레이션 변경 사항:
$table->string('channel_id');
이를 위해:
$table->integer('channel_id')->unsigned();
그리고 꼭 뛰어가서channels
테이블 이행 전posts
테이블 이행
언급URL : https://stackoverflow.com/questions/41639874/laravel-mariadb-errno150-foreign-key-constraint-is-incorrectly-formed
'programing' 카테고리의 다른 글
Class.newInstance()가 "evil"인 이유는 무엇입니까? (0) | 2022.10.26 |
---|---|
int 값과 연결된 열거형 가져오기 (0) | 2022.10.26 |
이벤트 대상을 클릭하면 상위 요소가 아닌 요소 또는 하위 요소가 표시됩니다. (0) | 2022.10.06 |
JavaScript와 ECMAScript의 차이점은 무엇입니까? (0) | 2022.10.06 |
PHP에 대한 AngularJS HTTP 게시 및 정의되지 않음 (0) | 2022.10.06 |