#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