SQL ORA-0291:违反了完整性约束-找不到父密钥



我遇到了一些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:违反了完整性约束-找不到父密钥

我不确定为什么我的外键错了?

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

最新更新