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');
});
在php artisan migrate
上运行此操作会给我一个
ORA-02264: name already used by an existing constraint.
似乎迁移在b上创建了一个名为 A_ID_PK 的约束,然后它尝试在c上创建一个名为 A_ID_PK 的约束和错误,因为有2个 A_ID_PK 对A.id的约束我是否正确,如果有,是否有解决方案?
答案 0 :(得分:0)
从错误实用程序中, ORA-02264 错误表示ORA-02264: Name already used by an existing constraint
。
定义是指定的约束名称必须是唯一的。因此,解决方案是为约束指定唯一的约束名称。
问题和解决方法
不确定,但问题是虽然可能尚未创建表,但constraint_name
视图中可能存在dba_constraints
。你可以这样检查:
select
table_name
from
dba_constraints
where constraint_name = upper ('A_ID_PK');
如果您还没有将此constraint_name
用于其他表格。
您的解决方案如下:
使用另一个约束名称,该名称对表是唯一的。
确保a
table。