Я получаю сообщение об ошибке 150, когда я запускаю это. Другими таблицами являются InnoDB, типы являются первичным ключом и соответствуют типам данных. Поэтому я не вижу, что я делаю неправильно (и я не вижу очевидных синтаксических ошибок). Есть идеи?MySQL не может создать новую таблицу с использованием внешних ключей
CREATE TABLE grouptosite (
groups_id BIGINT(20),
usertogroup_groupID BIGINT(20),
usertogroup_userID BIGINT(20),
usertosite_id INT(10),
gts_id INT(10) AUTO_INCREMENT NOT NULL,
PRIMARY KEY (gts_id),
index (gts_id),
index (groups_id),
index (usertogroup_groupID),
index (usertogroup_userID),
index (usertosite_id),
FOREIGN KEY (groups_id)
REFERENCES groups(id)
ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (usertogroup_groupID, usertogroup_userID)
REFERENCES usertogroup(groupID, userID)
ON UPDATE CASCADE ON DELETE RESTRICT,
FOREIGN KEY (usertosite_id)
REFERENCES usertosite(id)
ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=INNODB;
Это должно решить ваши проблемы http://stackoverflow.com/questions/825362/mysql-error-150-foreign-keys – user2600629
Как выглядят таблицы 'groups',' usertogroup' и 'usertosite'? –
Вы уверены, что ваши столбцы одного типа? Сначала я создал таблицу usertosite с идентификатором BIGINT (по той же схеме других таблиц), но поле grouptosite.usertosite_id было INT. http://sqlfiddle.com/#!2/d821a – xecaps12