Database 为什么会出现错误';无效的表名';,当我试图用第一个表的primray键创建另一个具有外键的表时
有一个名为“salerson123”的父表,主键为“SSN” 我想创建另一个表“Trip”,在其中我想将“SSN”作为外键,但我得到了以下错误Database 为什么会出现错误';无效的表名';,当我试图用第一个表的primray键创建另一个具有外键的表时,database,oracle,oracle10g,Database,Oracle,Oracle10g,有一个名为“salerson123”的父表,主键为“SSN” 我想创建另一个表“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
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
我尝试多次删除并再次创建父表,但没有成功。将
删除到
。它必须是:
FOREIGN KEY (SSN) REFERENCES SALESPERSON123(SSN),
而不是
FOREIGN KEY (SSN) REFERENCES TO SALESPERSON123(SSN),
外键是在Oracle数据库中强制执行引用完整性的一种方法。外键意味着一个表中的值也必须出现在另一个表中 被引用的表称为父表,而带有外键的表称为子表。子表中的外键通常会引用父表中的主键 外键可以在CREATETABLE语句或ALTERTABLE语句中定义
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)
);
使用外键(SSN)引用Salesorson123(SSN)。。。此处没有要使用的上的
。投票结束是一个输入错误问题。顺便说一句,这是一条非常准确的错误消息:“无效的表名”和一个指向到:-)的星号,如果消息总是那么准确的话。是今天还是这里发生了什么?即使错误对我们来说很明显,但对OP来说并不是这样,他们已经很好地描述了问题,并提供了帮助他们所需的所有信息。对于未来的调试,“ORA-00903:无效表名”之间存在差异这是因为TO
根本不应该在那里,但实际上它被视为一个表名,因此是无效的,因为“ORA-00942:表或视图不存在”,这似乎是您对它的解释。您试图修复错误的问题。这并不能真正回答最初提出的问题。
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)
);