programing

Larabel MariaDB errno:150 "외부 키 제약조건이 잘못 형성되었습니다"

newsource 2022. 10. 26. 21:04

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