Мои входные данные для внешнего ключа не работают, и я не уверен

#sql #oracle

#sql #Oracle

Вопрос:

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

Вот мой код:

 DROP TABLE Trips;  DROP SEQUENCE Trips_seq;   CREATE TABLE Trips(   Trips_ID NUMBER NOT NULL,   Date_of_Trip DATE NOT NULL,   Payment NUMBER NOT NULL,  Destination_Town VARCHAR2(50) NOT NULL,   Source_Town VARCHAR2 (50) NOT NULL,  Customer_ID NUMBER NOT NULL   CONSTRAINT Trip_pk  PRIMARY KEY (Trips_ID, Trips_seq),  CONSTRAINT Customer_fk  FOREIGN KEY (Customer_ID) REFERENCES Customer (Customer_ID),  CONSTRAINT Owner_fk  FOREIGN KEY (Owner_ID) REFERENCES Vehicle_Owners (Owner_ID),  CONSTRAINT Payment_fk  FOREIGN KEY (Payment_ID) REFERENCES Payment (Payment_ID),  CONSTRAINT Distances_fk  FOREIGN KEY (Destination_Town, Source_Town) REFERENCES   Distances (Destination_Town, Source_Town)s  

); СОЗДАЙТЕ ПОСЛЕДОВАТЕЛЬНОСТЬ Trips_seq, НАЧИНАЯ С 1 ШАГА НА 1;

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

1. Нам понадобится больше информации, приятель. Вы пробовали запустить это? Какие результаты/ошибки вы получаете? Что вы пытались исправить?

2. @L. Ньюэлл Говорит, что в нем отсутствует правая скобка. извините

3. У вас есть несколько других ошибок, в основном с использованием несуществующих столбцов: Owner_id, Payment_id, Trips_seq. Вы создаете trips_seq , но это не делает его столбцом в таблице, поэтому часть вашего ПК отсутствует. Owner_id, Payment_id имеют аналогичную проблему, поскольку они не существуют, они не могут быть FK. Вам нужна запятая после not null идентификатора пользователя и constraint . Вы закончили определение столбцов, но все еще определяете таблицу. Наконец, после добавления закрывающей правой скобки s появится синтаксическая ошибка. Заявление должно заканчиваться точкой с запятой.

Ответ №1:

Я насчитал 12 левых скобок и 11 правых скобок в вашем коде. Похоже, вам нужно добавить правую скобку перед вашим «s», например:

 Distances (Destination_Town, Source_Town)) s