有一个名为“ SALESPERSON123”且主键为“ SSN”的父表
SQL> DESC SALESPERSON123;
Name Null? Type
----------------------------------------- -------- ----------------------------
SSN NOT NULL VARCHAR2(30)
NAME VARCHAR2(30)
START_YR NUMBER
DEPT_NO VARCHAR2(30)
我想创建另一个表“ Trip”,在其中要使“ SSN”成为外键,但出现以下错误。
SQL> CREATE TABLE TRIP
2 (
3 TRIP_ID VARCHAR2(30),
4 SSN VARCHAR2(30),
5 FROM_CITY VARCHAR2(30),
6 TO_CITY VARCHAR2(30),
7 DEP_DATE NUMBER,
8 RETURN_DATE NUMBER,
9 FOREIGN KEY (SSN) REFERENCES TO SALESPERSON123(SSN),
10 PRIMARY KEY (TRIP_ID)
11 );
FOREIGN KEY (SSN) REFERENCES TO SALESPERSON123(SSN),
*
ERROR at line 9:
ORA-00903: invalid table name
我尝试多次,方法是删除并再次创建父表,但是没有用。
答案 0 :(得分:0)
删除TO
。它必须是:
FOREIGN KEY (SSN) REFERENCES SALESPERSON123(SSN),
代替
FOREIGN KEY (SSN) REFERENCES TO SALESPERSON123(SSN),
答案 1 :(得分:-2)
外键是一种在Oracle数据库中强制引用完整性的方法。外键意味着一个表中的值也必须出现在另一表中。
被引用的表称为父表,而具有外键的表称为子表。子表中的外键通常将引用父表中的主键。
可以在CREATE TABLE语句或ALTER TABLE语句中定义外键。
CREATE TABLE supplier
( supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)
);
CREATE TABLE products
( product_id numeric(10) not null,
supplier_id numeric(10) not null,
CONSTRAINT fk_supplier
FOREIGN KEY (supplier_id)
REFERENCES supplier(supplier_id)
);