Написание сценария, который реализует следующий дизайн

#oracle #ddl

#Oracle #ddl

Вопрос:

Я написал этот код, и я не знаю, почему я получаю ошибку

Отчет об ошибке — ORA-00903: недопустимое имя таблицы

 Create table downloads
(
 download_id   int Primary Key NOT NULL,
 User_id       int,
 download_date date,
 filename      Varchar(20),
 product_id    int,
 CONSTRAINT fk_column FOREIGN KEY (USER_id) REFERENCES user (user_id),
 FOREIGN KEY (product_id) REFERENCES products(product_id)
);
  

Комментарии:

1. user не может использоваться в качестве имени таблицы, если не указано (например, "user" ) как зарезервированное ключевое слово. Кстати, использование NOT NULL next to Primary Key является избыточным.

2. Также обратите внимание, что цитирование имен таблиц, столбцов или других объектов обычно считается плохой практикой в Oracle, поскольку в этом случае вы вынуждены всегда использовать кавычки при ссылке на этот объект. Гораздо лучше избегать зарезервированных ключевых слов в первую очередь.

Ответ №1:

Вы не можете создать таблицу с именем «user». пожалуйста, удалите строку «ОГРАНИЧЕНИЕ fk_column ВНЕШНИЙ КЛЮЧ (USER_id) ССЫЛАЕТСЯ НА пользователя (user_id)» и используйте приведенное ниже:

 Create table downloads2
(
 download_id   int Primary Key NOT NULL,
 User_id       int,
 download_date date,
 filename      Varchar(20),
 product_id    int,
 FOREIGN KEY (product_id) REFERENCES departments(department_id)
);