在sql文件中创建一个带外键的表,与下面创建的另一个表连接。

我的问题是,我有两个表,每个表都有一个外键到另一个表.每次,我执行包含创建两个表的SQL文件,它给我一个错误,他没有找到另一个表。我使用sqlplus来执行sql文件.下面是我用.NET Framework 2.0试过的一个SQL文件的例子。

create table A(
Age number(3),
name number(3) constraint A_FK references B(name))
/
create table B(
Age number(3) constraint B_FK references A(Age),
name number(3))

即使我把顺序反过来,它也给出了同样的错误.谢谢帮助。

解决方案:

外键所引用的表列必须在创建约束时存在。由于你在表之间有某种循环引用,你需要分三步来做。

  • 首先创建一个没有外键的表

  • 创建第二个表

  • 最后将外键添加到第一个表中,并添加一个 alter table 声明

你还需要引用的列有一个唯一的或主键的约束,否则你会得到错误信息 ORA-02270: no matching unique or primary key for this column-list.

create table A(
    age number(3) primary key,
    name number(3) 
);

create table B(
    age number(3) constraint B_FK references A(Age),
    name number(3) primary key
);

alter table A add constraint A_FK foreign key (name) references B(name);

DB Fiddle上的演示

附注:我对你的样本结构很怀疑,但这可能是因为你在问题中过于简化了。

给TA打赏
共{{data.count}}人
人已打赏
未分类

Java排序算法问题

2022-9-8 4:46:18

未分类

在Java中把大量数字转换为十六进制

2022-9-8 4:46:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索