当前位置: 首页 > 知识库问答 >
问题:

Laravel-OCI8 ORA-02275:表中已存在这样的引用约束

龙枫
2023-03-14

我一直在尝试使用跨dbms数据库的迁移。使用entrust和confide包,我在它们之后添加了迁移,以添加user _ statuses表和users表中对用户状态id的引用;但是当我定义外键时,我得到了这个:

[Illuminate\Database\QueryException]
Error Code    : 2275
Error Message : ORA-02275: such a referential constraint already exists in the table
Position      : 53
Statement     : alter table users add constraint users_state_foreign foreign key ( state ) references user_statuses ( id ) (SQL: alter table users add constraint users_state_foreign foreign key ( state ) references user_statuses ( id ))

[yajra\Pdo\Oci8\Exceptions\SqlException]
Error Code    : 2275
Error Message : ORA-02275: such a referential constraint already exists in the table
Position      : 53
Statement     : alter table users add constraint users_state_foreign foreign key ( state ) peferences user_statuses ( id )

下面是user_ Status和变更迁移。user_status创建:

Schema::create('user_statuses', function($table){
    // Columns
    $table->increments('id')->unsigned();
    $table->string('name');

    // Indexes

    // Constraints
});

用户变更:

Schema::table('users',function($table){
    // Columns
    $table->integer('state')->unsigned();
    $table->softDeletes();

    // Indexed

    // Constraints
    $table->foreign('state')->references('id')->on('user_statuses');
});

共有2个答案

班凌
2023-03-14

我把外()语句放在同一个文件中的另一个新的schma::table()语句中,下面是创建列的语句:

Schema::table('users', function($table){
    // Columns
    $table->integer('kojak')->unsigned();
    $table->softDeletes();

    // Indexed

    // Constraints

});
Schema::table('users', function($table){
    $table->foreign('kojak')->references('id')->on('user_statuses');
});

这解决了我的问题,但问题仍然是为什么传统的代码不起作用。

傅玮
2023-03-14

此版本已修复https://github.com/yajra/laravel-oci8/tree/v1.5.11

请尝试或向我们的回购提交问题。

 类似资料:
  • 问题内容: 规格: Laravel版本:5.5.3 PHP版本:7.1 数据库驱动程序和版本:MariaDB 10.1.26 描述: 重现步骤: 问题 它创建用户表并给出错误,但不创建列表表 问题答案: 我通过更改我的create_users_table.php解决了自己的问题

  • 我不知道问题是什么,由于某种原因,这两个表没有连接,我读了很多文章,尝试了很多仍然不起作用的东西。 我想把帖子和分类表链接在一起,这样当我可以显示帖子中选择的分类时。 类别 这是我得到的错误: SQLSTATE[42S01]:基表或视图已存在:1050个表“类别”已存在(SQL:create table(bigint unsigned not null auto\u auto\u incremen

  • 我目前正在使用Symfony 4和Doctrine MongoDB捆绑包,遵循此链接中的说明:DoctrineMongoDBBundle。因此,我有一个用户文档: src/Document/UserDocument。php src/Repository/UserRepository。php src/Controller/Content。php 类内容扩展控制器 所以,在运行内容页面后,我得到了以下

  • 创建的组织: 当我在这个组织中添加新医生时,一切都很好。应用程序正常工作,没有任何错误: 当我添加第二个医生时,我遇到了错误(错误堆栈如下所示): 错误实际上是这样的: 进程:ooper.java:193,PID:5505android.app.RuntimeException:无法启动活动ComponentInfo{hread.main}:hread.java:5292RealmExceptio

  • 问题内容: 有没有办法给已经存在的约束命名? 例如 : 在上面的查询中,我没有命名外键约束,因此在创建表之后,我可以为其命名,也可以在不删除列的情况下删除外键约束吗? 问题答案: 是的,您可以像这样重命名约束: 编辑:我忘记了第二个问题。是的,您可以删除约束而不删除列。如果您不知道约束的名称,则可以在表中找到它,如下所示:

  • 尝试在 Postgres 9.5 中更改表以创建外键约束时:从 到 返回错误 我很困惑为什么帖子试图找到,当密钥是从到 有什么想法吗?