Php Laravel迁移创建重复的外键名称

Php Laravel迁移创建重复的外键名称,php,laravel,laravel-5,Php,Laravel,Laravel 5,使用php artisan migrate在这台机器上运行这个程序,会给我一个 Schema::create('a', function(Blueprint $table) { $table->bigInteger('id'); $table->primary('id'); }); Schema::create('b', function(Blueprint $table) { $table->bigInteger('id'); $table->bi

使用
php artisan migrate
在这台机器上运行这个程序,会给我一个

Schema::create('a', function(Blueprint $table) { 
  $table->bigInteger('id');
  $table->primary('id');
});

Schema::create('b', function(Blueprint $table) { 
  $table->bigInteger('id');
  $table->bigInteger('a_id');
  $table->foreign('a_id')->references('id')->on('a');
});

Schema::create('c', function(Blueprint $table) { 
  $table->bigInteger('id');
  $table->bigInteger('a_id');
  $table->foreign('a_id')->references('id')->on('a'); 
});
似乎migrate在b上创建了一个名为a\u ID\u PK的约束,然后它尝试在c上创建一个名为a\u ID\u PK的约束,因为a.ID上有2个a\u ID\u PK约束。我是否正确,如果正确,是否有解决方案?

从错误实用程序中,ORA-02264错误表示现有约束已使用的名称
ORA-02264:Name

定义是指定的约束名称必须是唯一的。因此,解决方案是为约束指定唯一的约束名称

问题和解决方法
不确定,但问题是,虽然表可能尚未创建,但
dba\u constraints
视图中可能存在
constraint\u name
。您可以这样检查:

ORA-02264: name already used by an existing constraint.
如果您尚未对其他表使用此
约束\u名称

您的解决方案如下所示:
使用另一个约束名称,该名称对于表是唯一的。 确保
a
表存在此约束名称。

从错误实用程序中,ORA-02264错误表示
ORA-02264:已由现有约束使用的名称

定义是指定的约束名称必须是唯一的。因此,解决方案是为约束指定唯一的约束名称

问题和解决方法
不确定,但问题是,虽然表可能尚未创建,但
dba\u constraints
视图中可能存在
constraint\u name
。您可以这样检查:

ORA-02264: name already used by an existing constraint.
如果您尚未对其他表使用此
约束\u名称

您的解决方案如下所示:
使用另一个约束名称,该名称对于表是唯一的。
确保
a
表中存在此约束名称。

您的上述代码创建了两个不同的约束:
b\u a\u id\u foreign
表b上的约束和
c\u a\u id\u foreign
表c上的约束。在运行migrate之前,您可以始终检查执行的sql代码:
php artisan migrate——假装运行此命令时没有任何错误……您上面的代码创建了两个不同的约束:
b_a_id_foreign
在表b上,以及
c_a_id_foreign
在laravel 5.3的表c上。在运行migrate之前,您可以始终检查执行的sql代码:
php artisan migrate——假装运行此命令时没有收到任何错误。。。。