私は2つのテーブル、伝票と注文を持っています。バウチャーはIDとして16文字の文字列を持つ必要があり、ランダムに作成されます。Laravelで文字列型の外部キーを追加するときのエラー
:[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL
: alter table `orders` add constraint `orders_voucher_id_foreign` foreign k
ey (`voucher_id`) references `vouchers` (`id`))
[PDOException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
そして、ここでは私のテーブルです:IDを整数としてインクリメントされましたが、文字列に変更したとき、私はちょうどそれがこのエラーを取得して、外部キーを追加するために得ることができないとき、すべてが働いていました
Schema::create('vouchers', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->string('id');
$table->integer('value');
$table->string('status');
$table->timestamps();
});
Schema::create('orders', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('event_id')->unsigned();
$table->string('voucher_id');
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('event_id')->references('id')->on('events');
$table->foreign('voucher_id')->references('id')->on('vouchers');
});
フィードバックは本当にありがとうございます。前もって感謝します。
これらのスキーマは、同じファイルまたは異なるファイルにありますか? – aynber