Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 为什么会出现错误';无效的表名';,当我试图用第一个表的primray键创建另一个具有外键的表时_Database_Oracle_Oracle10g - Fatal编程技术网

Database 为什么会出现错误';无效的表名';,当我试图用第一个表的primray键创建另一个具有外键的表时

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

有一个名为“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 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)

);