SQL-外键的多个条目

时间:2019-01-09 01:57:31

标签: sql oracle oracle-sqldeveloper

这是我第一次来这里,不知道具体如何。 :) 我在学校有一个数据库项目,我们在SQL Developer中使用SQL,Oracle Express 11g。 我选择为音乐节做数据库,但遇到一些问题。 我在填充表格时遇到问题,我认为这主要是设计错误。

我有一个餐桌音乐节,我想用作主桌子,每个桌子都从中折叠成另一个桌子。我不明白的是我如何为一对多关系填充表格。 从MUSIC FESTIVAL表中,我与PUBLIC表具有一对多关系,该表包含有关每个演唱者的信息。我将TICKET_ID用作PUBLIC中的主键,因此可以将其用作MUSIC_FESTIVAL中的外键,但是当我要将条目插入表中时,我就卡住了。

在这里是ERD以使其更易于理解:

enter image description here

这就是SQL DEVELOPER中的样子:

SQL DEVELOPER

这是我得到的错误: 一个错误保存对表“ ROBERT”。“ PUBLIC”的更改: 第1行:ORA-02291:违反完整性约束(ROBERT.PUBLIC_MUSIC_FESTIVAL)-未找到父键 ORA-06512:在第1行

此外,由于这些错误,我发现很难填充表格。 SQL DEVELOPER不允许我在一个表上输入数据,然后再转到另一个表以解决错误。

请帮助,我真的需要一些。

祝你有美好的一天!

1 个答案:

答案 0 :(得分:2)

一般来说,您需要按顺序插入数据。也就是说,首先插入父表,然后插入子表。好吧...除非您使用可延期的约束,但这是一个相当高级的主题,您现在应该避免。

例如:

insert into MUSIC FESTIVAL (name, location, date, stages, tickets, transportation)
  values ('Monster', 'Tokio', date '2019-03-15', 12345678, 12);

insert into PUBLIC (public_name, ..., ticket_id, ...)
            values ('Abc', ...,       'Monster', ...);

子表上的第二个插入包含第一个插入已创建的外键Monster