从多个表中添加外键,如何确保序列

时间:2017-11-17 08:15:45

标签: database plsql oracle-sqldeveloper

所以这基本上是我当前的任务。

2表已收到一定数量的自动生成数据。

Table_1 id number, identitynumber number, name varchar2, sex varchar2, birthday date;

Table_2 id number, identification number, manufacturer varchar2, typ varchar2;

两个表上的ID值是每个表的主键。现在我必须将这两个表中的数据插入到第三个表中,这些表将使用这些ID作为外键。该表还应该接收一些自动生成的数据。

Table_3 id number, plate varchar2, id_table1 number, id_table2 number, from date, until date;

我计划使用带有select的插入来查询所需的数据:

insert into table_3 (id, plate, id_table1, id_table2, from, until)
   select function_randomID as id,
      generate_randomPlate as plate,
      (select t1.id
      from table_1) as id_table1,
      (select t2.od
      from table_2) as id_table2,
      generate_date as from,
      gemerate_date as until
   from dual;

现在,我知道两个ID的选择都不正确,这正是问题所在。

我不知道我需要在这些选择中添加什么条件,以获得单行并将其添加到第三个表中。

很抱歉,如果我没有以更简洁的方式询问它。希望现在已经足够明白了。

1 个答案:

答案 0 :(得分:0)

  

现在我要将这两个表中的数据插入到第三个表中,   将这些id用作外键。这张桌子也应该收到   一些自动生成的数据。

假设您自动生成的号码来自function,您可以尝试:

INSERT INTO table_3 (id,
                     plate,
                     id_table1,
                     id_table2,
                     fm,--From is a reserve keyword
                     until)
   SELECT function_randomID AS id,
          generate_randomPlate AS plate,
          tb1.id,
          tb2.id,
          generate_date AS fm,
          gemerate_date AS untl
     FROM table_1 tb1 
    CROSS JOIN table_2 tb2 ;
   --ON tb1.id = tb2.id;