2011-09-27 45 views
-2

中号关联语法错误我有这样的SQL(MySQL的):N:在代码

create table apartmentcaretakers 
(
apartmentID int, 
caretakerID int, 
PRIMARY KEY (apartmentID, caretakerID), 
FOREIGN KEY (apartmentID) REFERENCES apartments(apartmentID), 
FOREIGN KEY (caretakerID) REFERENCES caretakers(caretakerID) 
)engine = innodb; 

的错误,我的猫:近“引用公寓(apartmentID),外键caretakerID引用看护人 SQL语法错误'

这是我的一些小错误,但是有人能指出吗?

编辑:一些编码和重新运行后,错误是1064.我可以理解为什么它没有真正帮助,因为它是一个广泛的错误。

+0

这个问题解决了它的自我,我就通过我的大脑无尽波跳水后,发现里面有人偷了我的括号:)但THX反正你帮忙... – Yilmas

回答

0

为我工作。

确保您的引用表也使用INNODB引擎。使用以下查询来检查:SHOW TABLE STATUS WHERE Name = 'xxx'

mysql> CREATE TABLE apartments (
    -> apartmentID int PRIMARY KEY NOT NULL) ENGINE = innodb; 
Query OK, 0 rows affected (0.01 sec) 

mysql> CREATE TABLE caretakers (
    -> caretakerID int PRIMARY KEY NOT NULL) ENGINE = innodb; 
Query OK, 0 rows affected (0.02 sec) 

mysql> CREATE TABLE apartmentcaretakers (
    -> apartmentID int, 
    -> caretakerID int, 
    -> PRIMARY KEY (apartmentID, caretakerID), 
    -> FOREIGN KEY ac_fk_apartments_id (apartmentID) REFERENCES apartments (apartmentID), 
    -> FOREIGN KEY ac_fk_caretakers_id(caretakerID) REFERENCES caretakers (caretakerID) 
    ->) ENGINE = innodb; 

Query OK, 0 rows affected (0.02 sec) 
+0

没有改变的错误...仍然是1064 ... – Yilmas

+0

嗯。所以你可以创建前两个表格(“公寓”和“照顾者”)?他们有INNODB引擎? 'mysql> SHOW ENGINES'没有正确列出InnoDB?现在只是猜测:)你可以提供你的两个引用表的“DESC”输出吗? –