2014-10-15 8 views
-5
CREATE TABLE Schedule(
Schedule_ID number(10) Primary key, 
Departure_Date number(10), 
Arrival_Date number(10), 
Train_ID number(10) References, 
Train(Train_ID), 
Route_ID number(10) References 
Route(Route_ID) 
); 

Я запустил это и получил ORA-00903: недопустимое имя таблицы. Раньше я делал таблицу маршрутов и поездок, поэтому внешний ключ должен работать.ORA-00903: invalid table namee

+0

Имя таблицы не должно быть «Расписание» заменить чем-то. Некоторое слово предопределено для использования, которое не должно использоваться при регулярном использовании. –

+3

Неправильная запятая после 'Список литературы'. Если проблема не устранена, у вас, вероятно, нет таблиц с именем «Route» или «Train». Кроме того, почему вы храните столбцы даты как цифры, а не как «date»/ –

+0

k Я изменил расписание на TrainSchedule и изменил запятую, не уверен, какой из них работал, но оба они оба. Также мне нужно сделать основной ключ Constraint T_RPK (Train_ID, Route_ID) в последней строке? Я не знал, что была дата, которую мой профессор не сказал, поэтому я предположил, что это цифры, такие как 011194 для jan 11th 1994 –

ответ

0

Попробуйте этот запрос, он работает:

CREATE TABLE Schedule(
    Schedule_ID number(10) Primary key, 
    Departure_Date number(10) , 
    Arrival_Date number(10) , 
    Train_ID number(10) 
      References Train(Train_ID), 
    Route_ID number(10) 
      References Route(Route_ID) 
); 
  1. В принципе, запятая перед ссылками и поезд вызвал неверном имя таблицы. Удалив его, вы можете создать таблицу без проблем.
  2. Также подумайте о том, чтобы изменить number(10) на даты прибытия и отправления на 'date', потому что лучше сохранить поле даты как дату, а не цифру.
+1

Пункт № 2 не имеет отношения к этому вопросу, а именно о синтаксической ошибке, а не модели данных. 'number (10)' является допустимым синтаксисом. –

+0

k Я сделал это Depareture_ Дата, но idk, как вы вставляете дату. Вставить в расписание (Schedule_ID, Departure_Date, Arrival_Date, Route_ID, Train_ID) значения (1, так как мне вставить здесь значения даты ???) –

+0

'ВСТАВИТЬ В РАСПИСАНИЕ (ARRIVAL_DATE) ЗНАЧЕНИЯ (TO_DATE ('20/10/2014 ' , 'DD/MM/YYYY')); 'Вы можете использовать аналогичную команду для вставки значения даты в таблицу –

0

Если вы не беспокоитесь о строках кода, я предложу некоторое решение. Решение заключается в следующем

  1. сначала создать таблицу без ограничений
  2. после создания проверочной таблицы для таблицы (Train), который мы будем иметь в виду столбец ** (Train_ID) **
  3. затем проверить тип данных в упомянутой колонке, Поезд (Train_ID)
  4. затем проверить, является ли отнесение и передал столбец из одного типа данных
  5. наконец, используя изменить команду добавить ограничения к столу

Это предложение от моего side.We вообще ошибки так проверьте ссылки называют и столбцы из одного типа данных.

+1

. Решение состоит в удалении блуждающей запятой; это не связано с типом данных? Разделение этого на отдельные инструкции create и alter может случайно удалять ошибку, но может также ввести больше, поэтому я не уверен, что это очень полезно. –

+0

@AlexPoole спасибо за комментарий. Вы сказали, что при запуске вышеуказанного скрипта получена ошибка ORA-00903. когда я просматриваю эту ошибку, на самом деле эта ошибка является признаком недопустимой таблицы или объекта. как вы сказали, что доступны две таблицы, я не понимаю, почему ошибка возникает при запуске вышеуказанного скрипта. Попробуйте снова запустить скрипт – Smart003

+0

Из-за блуждающей запятой. Я не знаю, действительно ли это попытка интерпретировать запятую как имя таблицы или если она более тонкая. –