MeG1tsune
@MeG1tsune
NodeJS - мой личный круг ада

Почему не создаётся связь между таблицами?

Доброго времени суток. Делаю мини блог на NodeJS с использованием ORM Sequelize. При попытке связать 3 таблицы между собой Histories => Users и News => Users, связь создаётся только между Histories и Users, а News ни как не хочет связываться, пробовал напрямую через SQL запрос
ALTER TABLE `News` ADD CONSTRAINT `News_ibfk_1` FOREIGN KEY (`aUID`) REFERENCES `Users`(`UID`) ON DELETE CASCADE ON UPDATE CASCADE;

Выдаёт ошибку
Ошибка создания внешнего ключа на aUID (проверьте типы данных)


SQL запрос создания Users
CREATE TABLE IF NOT EXISTS `Users` (
  `UID` INTEGER auto_increment,
  `Nickname` VARCHAR(16),
  `AboutMe` VARCHAR(1000),
  `Email` VARCHAR(255),
  `Privilages` JSON,
  `Password` VARCHAR(255),
  PRIMARY KEY (`UID`)
) ENGINE = InnoDB;


SQL запрос создания News
CREATE TABLE IF NOT EXISTS `News` (
  `NID` INTEGER auto_increment,
  `aUID` INTEGER,
  `Link` VARCHAR(255),
  `Banner` VARCHAR(255),
  `Name` VARCHAR(255),
  `Views` INTEGER,
  `Tags` JSON NOT NULL,
  `SmallContent` VARCHAR(255),
  `Content` TEXT,
  `CreateDate` DATETIME,
  PRIMARY KEY (`NID`),
  FOREIGN KEY (`aUID`) REFERENCES `Users` (`UID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB;


SQL запрос создания Histories
CREATE TABLE IF NOT EXISTS `Histories` (
  `id` INTEGER NOT NULL auto_increment,
  `UID` INTEGER,
  `actAgent` VARCHAR(255),
  `actType` VARCHAR(255),
  `actDate` DATETIME,
  `actIP` VARCHAR(255),
  PRIMARY KEY (`id`),
  FOREIGN KEY (`UID`) REFERENCES `Users` (`UID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB;


Почему не создаёт связь между таблицами и как это можно исправить?
Заранее благодарю за помощь!
  • Вопрос задан
  • 360 просмотров
Пригласить эксперта
Ответы на вопрос 2
Приветствую. У вас почему-то News связывается с Users, а Histories с Members, для которой не вижу запроса на создание. Скорее всего в обоих случаях нужно Users.

Ну и тут очепятка с лишней запятой
`UID` INTEGER auto_increment,,
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
Duplicate key on write or update, то есть в таблице есть записи с одинаковым ключом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы