Laravel 4、User および GP の 2 つのテーブル間に外部キー制約を作成しようとしています。ユーザーは多くの GP に関連付けることができます。外部キーは users テーブルの「Practice_ID」であり、GP テーブルの ID に関連付けられています。
public function up()
{
// Creates GP table
Schema::create('gp', function($ta)
{
$ta->bigIncrements('id');
$ta->string('address_1');
$ta->string('address_2');
$ta->string('address_3');
$ta->string('post_code');
$ta->timestamps();
});
// Creates the users table
Schema::create('users', function($table)
{
$table->increments('id');
$table->string('username');
$table->string('email');
$table->string('password');
$table->string('confirmation_code');
$table->boolean('confirmed')->default(false);
$table->bigInteger('practice_id');
$table->foreign('practice_id')->references('id')->on('gp');
$table->timestamps();
});
// Creates password reminders table
Schema::create('password_reminders', function($t)
{
$t->string('email');
$t->string('token');
$t->timestamp('created_at');
});
}
私が得ているエラーは次のとおりです。
[Exception]
SQLSTATE[HY000]: General error: 1005 Can't create table 'doctor.#sql-3ac_a4' (errno: 150) (SQL: alter tableusers
add constraint users_practice_id_foreign 外部キー (practice_id
) 参照gp
(id
)) (Bindings: array (
))