【发布时间】:2012-06-19 09:18:29
【问题描述】:
我正在尝试创建三个表,但是我收到错误
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 'REFERENCES personal_details(personID)
)'
上述错误是针对第三个表,即表hobbies_person。
我正在创建如下表。
CREATE TABLE personal_details (
personID INT PRIMARY KEY,
firstName varchar(30),
middleName varchar(30),
lastName varchar(30),
age INT,
aboutMe varchar(500)
);
CREATE TABLE hobbies (
hobbID INT PRIMARY KEY,
hobbName varchar(30)
);
CREATE TABLE hobbies_person (
personID INT,
hobbID INT,
PRIMARY KEY (personID, hobbID),
FOREIGN KEY personID REFERENCES personal_details(personID)
);
我也试过
CREATE TABLE hobbies_person (
personID INT,
hobbID INT,
PRIMARY KEY (personID, hobbID),
FOREIGN KEY personID REFERENCES personal_details(personID),
FOREIGN KEY hobbID REFERENCES hobbies(hobbID)
);
但还是同样的错误。
Link to check query
知道如何解决这个问题吗?
注意
在表hobbies_person中,我使用复合主键作为PRIMARY KEY (personID, hobbID),
【问题讨论】:
-
如果 hbbID 是主键的一部分,为什么要将它定义为唯一的?没有意义
-
@a_horse_with_no_name :感谢您发现...我删除了...仍然是同样的错误...
-
将“hobbID INT UNIQUE KEY”删除为 hobbID INT ,然后与 person_id 一起声明为主键
标签: mysql foreign-keys foreign-key-relationship composite-primary-key