如何将数据插入到有外键的表中
How to insert data into tables that have foreign keys
SQL> desc invoices
Name Null? Type
----------------------------------------- -------- ----------------------------
INVOICE_ID NOT NULL NUMBER(6)
COMPANY_ID NUMBER(6)
STUDENT_ID NUMBER(6)
BILLING_DATE DATE
SQL>
我想在此 table 中插入一些样本数据。 company_id
和 student_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>
您需要先在"companies"中输入公司,在"students"中输入学生。然后将这些 ID 用于 [what1] 和 [what2]
[what1] 是 COMPANY_ID 的 ID
[what2] 是 STUDENT_ID 的 ID
如果 table Student 和 Company 为空,则必须在 Insert
之前将记录插入到两个 tables
您必须输入来自 students
table 的现有 STUDENT_ID
和来自 compaies
table 的现有 COMPANY_ID
到发票。
假设您有 next
这样的数据
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
然后您可以使用 1
或 2
作为 COMPANY_ID
(在您的查询 [what1] 中)和 11
或 22
作为 STUDENT_ID
(在您的查询中 [what2])
SQL> desc invoices
Name Null? Type
----------------------------------------- -------- ----------------------------
INVOICE_ID NOT NULL NUMBER(6)
COMPANY_ID NUMBER(6)
STUDENT_ID NUMBER(6)
BILLING_DATE DATE
SQL>
我想在此 table 中插入一些样本数据。 company_id
和 student_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>
您需要先在"companies"中输入公司,在"students"中输入学生。然后将这些 ID 用于 [what1] 和 [what2]
[what1] 是 COMPANY_ID 的 ID [what2] 是 STUDENT_ID 的 ID 如果 table Student 和 Company 为空,则必须在 Insert
之前将记录插入到两个 tables您必须输入来自 students
table 的现有 STUDENT_ID
和来自 compaies
table 的现有 COMPANY_ID
到发票。
假设您有 next
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
然后您可以使用 1
或 2
作为 COMPANY_ID
(在您的查询 [what1] 中)和 11
或 22
作为 STUDENT_ID
(在您的查询中 [what2])