N: M Синтаксическая ошибка отношения в коде - PullRequest
0 голосов
/ 27 сентября 2011

У меня есть этот SQL (для MySQL):

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;

Ошибка, которую я кот: Ошибка синтаксиса SQL рядом с «ссылками на апартаменты (apartmentID), хранителем внешнего ключа ссылается на смотрителей»

Это действительно небольшая ошибка с моей стороны, но кто-то может указать на это?

РЕДАКТИРОВАТЬ: после некоторого кодирования и повторного запуска ошибка 1064. Я могу понять, почему это не помогло, поскольку это ошибка широкого спектра.

1 Ответ

0 голосов
/ 27 сентября 2011

Сработало и для меня.

Убедитесь, что в ссылочных таблицах также используется механизм 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...