Проблема у Вас есть то, что вы ссылаетесь столбцы в таблицах, которые не существуют.
Хотя вы создаете эти таблицы позже, механизм СУБД не знает, что они будут существовать.
Решение - создайте таблицы без FK, которые не существуют, и добавьте их позже, используя команду «ALTER TABLE».
Кажется, что вы знаете синтаксис, поэтому я позволю вам сообщить мне, если вы не можете его найти.
ваш синтаксис должен выглядеть (Все, что я сделал это снова заказ, и изменить символ, чтобы быть лучником ...):
CREATE TABLE Studio(the_name varchar(50) PRIMARY KEY NOT NULL, address varchar(50) NOT NULL);
CREATE TABLE Director(the_name varchar(50) PRIMARY KEY NOT NULL, birthdate date NOT NULL, nationality varchar(50) NOT NULL);
CREATE TABLE Movies(title varchar(50) PRIMARY KEY NOT NULL, Years date NOT NULL,
length decimal not null, genre varchar(50) NOT NULL, academy_award varchar(50) not null,
the_name REFERENCES Studio(the_name), directorname REFERENCES Director(the_name));
CREATE TABLE MovieStar(the_name char PRIMARY KEY NOT NULL, birthdate date NOT NULL, address char NOT NULL, gender char NOT NULL);
CREATE TABLE StarsIn(title REFERENCES Movies(title),movie REFERENCES Movies(title), moviestar REFERENCES MovieStar(the_name));
записочку, зависит от версии - вы» d может потребоваться использовать FOREIGN KEY (col_name) вместо col_name. Мне больше нравится синтаксис без него, но некоторые версии заставляют вас использовать FOREIGN KEY(title)
вместо title
в последнем SQL, например.
Используемый вами синтаксис - Внешний ключ NAME Ссылки TABLE (Column) - вы забыли столбец - Позволяет вам назвать FK. Если вы не используете «Foreign Key», система будет произвольно назначать имя. Обычно это не важно, если вы не хотите, чтобы дизайн БД был «чистым» и мог ссылаться на него по имени.
P.S. - Я не запускал его, я надеюсь, что вы сообщите, есть ли другая проблема - я не проверял синтаксис, просто исправил ошибку, о которой вы сообщали, - ссылки, которые не существуют ... P.S. Постскриптум Всегда проверяйте синтаксис ... http://dev.mysql.com/doc/refman/5.1/en/create-table.html
Вы должны отправить сообщение об ошибке, которое хотите получить, если вы хотите, чтобы кто-то отлаживал ваш код ... – evenro
Ключевой столбец имя_памяти не существует в табличной ошибке. – Rohit
Это мой первый раз, когда я использую SQL, не знаю, как создать таблицу. – Rohit