Почему я получаю сообщение об ошибке «Неверное имя таблицы», когда я пытаюсь создать другую таблицу с внешним ключом с ключом primray первой таблицы - PullRequest
0 голосов
/ 23 февраля 2019

Существует родительская таблица с именем «SALESPERSON123» с первичным ключом «SSN»

SQL> DESC SALESPERSON123;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------

 SSN                                       NOT NULL VARCHAR2(30)
 NAME                                               VARCHAR2(30)
 START_YR                                           NUMBER
 DEPT_NO                                            VARCHAR2(30)

Я хочу создать другую таблицу «Поездка», в которой я хочу сделать «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

Я пытался несколько раз, удаляя и снова создавая родительскую таблицу, но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Внешний ключ - это способ обеспечить ссылочную целостность в вашей базе данных 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)

);
0 голосов
/ 23 февраля 2019

Удалить TO.Должно быть:

FOREIGN KEY (SSN) REFERENCES SALESPERSON123(SSN),

вместо

FOREIGN KEY (SSN) REFERENCES TO SALESPERSON123(SSN),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...