#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 toPrimary 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)
);