我完全不知道爲什麼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 , 成本 REAL , SSN CHAR(11)NOT NULL , PRIMARY KEY (PNAME,SSN ), 外鍵 (SSN) 參考 僱員, ON DELETE CASCADE ) http://pages.cs.wisc.edu/~dbbook/openAccess/firstEdition/slides/pdfs lides/mod5l1-2.pdf – Kelbe