Вам не нужны ключевые слова FOREIGN KEY
, когда вы используете встроенные ограничения, и вам не нужны как внешние, так и встроенные ограничения:
create table downloads (
Download_id varchar2(150) not null,
User_id varchar2(150) references users (User_id),
Download_date date not null,
File_name varchar(300) not null,
Product_id varchar(300) references Products (Product_id)
);
db <> fiddle
Кроме того, вы должны учитывать:
- именование ваших ограничений;
- с использованием целых чисел в качестве первичного ключа, а не (больших ) strings;
- без префикса идентификаторов столбца с именем таблицы; и
- с использованием
IDENTITIY
столбцов (если вы используете Oracle 12 или более поздней версии, в противном случае используйте последовательности).
Например:
create table downloads (
id NUMBER(10,0)
GENERATED ALWAYS AS IDENTITY
CONSTRAINT downloads__id__pk PRIMARY KEY,
User_id NUMBER(10,0)
CONSTRAINT downloads__user_id__fk REFERENCES users (id),
datetime DATE
CONSTRAINT downloads__datetime__nn NOT NULL,
File_name VARCHAR2(300)
CONSTRAINT downloads__file_name__nn NOT NULL,
Product_id NUMBER(10,0)
CONSTRAINT downloads__product_id__FK REFERENCES Products (id)
);
дб <> скрипка