0

我遇到了一些关于 SQL 外键的问题。

这是我的表和插入 SQL。



create table passenger_card2
(
    phone char(20) primary key,
    name char(20)
);

create table card
(
    card_num char(20) primary key,
    balance number(10,2),
    cvn char(20) 
);

create table passenger_card1
(
    sin integer primary key,
    user_id char(20) not null unique,
    phone char(20),
    card_num char(20) unique,
    foreign key(phone) references passenger_card2,
    foreign key (card_num) references card
);

以下是我的INSERT陈述:

INSERT INTO PASSENGER_CARD2 VALUES ( '111222333' , 'Ace');
INSERT INTO CARD VALUES ( '1000' , '100.1' , '110');
INSERT INTO PASSENGER_CARD1 VALUES ('100', 'aaaa', '111222333', '1000');

但是,当我尝试插入 PASSENGER_CARD1 数据时出现错误:

SQL ORA-02291: 违反完整性约束 - 未找到父键

我不知道为什么我的外键是错误的?

4

1 回答 1

0

我不确定这是否正确,但您应该先创建表 2,然后再创建第一个表。数据库很困惑,因为告诉他们第二个表中有外键但没有创建表是没有意义的。首先运行第二个表的代码,然后运行第一个表的代码。

于 2020-04-07T14:37:33.583 回答