如何将数据插入具有外键的表中

时间:2015-03-05 07:35:10

标签: sql database oracle database-administration

SQL> desc invoices
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 INVOICE_ID                                NOT NULL NUMBER(6)
 COMPANY_ID                                         NUMBER(6)
 STUDENT_ID                                         NUMBER(6)
 BILLING_DATE                                       DATE

SQL>

我想在此表中插入一些示例数据。 company_idstudent_id是外键。这就是我要进入的地方:

INSERT INTO invoices VALUES (SEQ_INVOICE.NEXTVAL,[what1],[what2],SYSDATE);

我不知道我应该把什么放在what1和what2

SQL> desc companies
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 COMPANY_ID                                NOT NULL NUMBER(6)
 COMPANY_NAME                                       VARCHAR2(30)
 ADDRESS                                            VARCHAR2(128)
 CONTACT_NO                                         VARCHAR2(11)
 NO_OF_EMP                                          NUMBER(10)

SQL>

SQL> desc students
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 STUDENT_ID                                NOT NULL NUMBER(6)
 ST_FNAME                                           VARCHAR2(16)
 ST_SNAME                                           VARCHAR2(16)
 ADDRESS                                            VARCHAR2(128)
 DOB                                                DATE

SQL>

3 个答案:

答案 0 :(得分:1)

您必须从STUDENT_ID表格中输入现有的students,并从COMPANY_ID表格中输入现有的compaies到发票。 考虑你有下一个数据

COMPANY_ID     COMPANY_NAME     ADDRESS     CONTACT_NO     NO_OF_EMP
-----------    ------------     --------    ----------     ---------
1              Blah LLC         blah st.    123456         100
2              My Company       My Street   987654321      50

STUDENT_ID     ST_FNAME     ST_SNAME     ADDRESS     DOB
-----------    ---------    ---------    --------    ------------
11             Jim          Carrey       ....        1900.25.04
22             Jack         Sparrow      Carrib st.  1700.30.08

然后您可以将12用作COMPANY_ID(在您的查询[what1]中),将1122用作STUDENT_ID (在您的查询[what2]中)

答案 1 :(得分:0)

您需要先进入“公司”的公司,然后进入“学生”的学生。然后将这些ID用于[what1]和[what2]

答案 2 :(得分:0)

[what1]是COMPANY_ID的ID [what2]是STUDENT_ID的ID 如果表Student和Company为空,则必须在Insert

之前将记录插入两个表
相关问题