У меня нет абсолютно никакой подсказки, почему MySQL имеет проблему со вторым оператором CREATE TABLE
.Ошибка MySQL FOREIGN KEY, ON DELETE CASCADE
CREATE TABLE User(
uid INTEGER,
url CHAR(100),
firstname CHAR(40),
lastname CHAR(40),
PRIMARY KEY(uid)
);
Ниже есть один, который вызывает проблемы:
CREATE TABLE Follows(
uid INTEGER,
url CHAR(100),
PRIMARY KEY(uid,url),
FOREIGN KEY(uid) REFERENCES User(uid), ON DELETE CASCADE,
FOREIGN KEY(url) REFERENCES User(url), ON DELETE CASCADE
);
Ошибки я получаю:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON DELETE CASCADE, FOREIGN KEY(url) REFERENCES User(url), ON DELETE CASCADE)' at line 1
Удалите запятую ',' перед 'ON DELETE'. Этот параметр является частью предыдущего определения ограничения FOREIGN KEY и, таким образом, отображается в одной строке без запятой. Как правило, когда MySQL указывает на «правильный синтаксис для использования рядом», посмотрите на символ непосредственно перед одиночной цитатой. Это помогает, если сообщение заканчивается там только одной цитатой, и в этом случае ошибка произошла в конце вашего заявления. –
@Kelbe: http://dev.mysql.com/tech-resources/articles/mysql-enforcing-foreign-keys.html –
Это странно, потому что я следовал примеру и использовал FOREIGN с запятой, затем ON DELETE. Похоже, это: CREATE TABLE Dep_Policy ( PNAME CHAR (20) , возраст INTEGER , стоимость РЕАЛ , ПЛА CHAR (11) NOT NULL , PRIMARY KEY (PNAME, ССН), FOREIGN KEY (ПЛА) ЛИТЕРАТУРА Сотрудники, ON DELETE CASCADE ) http://pages.cs.wisc.edu/~dbbook/openAccess/firstEdition/slides/pdfs lides/mod5l1-2.pdf – Kelbe