Таблица с двумя ограничениями внешнего ключа - PullRequest
0 голосов
/ 30 июня 2019

Я получаю ОШИБКУ 1064 (42000), когда пытаюсь создать таблицу, содержащую 2 внешних ключа.Это говорит о том, что мой синтаксис неправильный, но я не могу найти ничего неправильного.Я использую MySQL версии 8.0

Я пробовал только с одним ограничением / без второго, и оно работает.Но с обоими из них я получаю сообщение об ошибке.

Это работает:

CREATE TABLE IF NOT EXISTS Comment (
  id INT NOT NULL AUTO_INCREMENT,
  content VARCHAR(15) NOT NULL,
  date_posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  user_id INT NOT NULL,
  post_id INT NOT NULL,
  PRIMARY KEY (id),
  CONSTRAINT `fk_User_Comment`
    FOREIGN KEY (user_id)
    REFERENCES User (id)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

Это не:

CREATE TABLE IF NOT EXISTS Comment (
  id INT NOT NULL AUTO_INCREMENT,
  content VARCHAR(15) NOT NULL,
  date_posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  user_id INT NOT NULL,
  post_id INT NOT NULL,
  PRIMARY KEY (id),
  CONSTRAINT `fk_User_Comment`
    FOREIGN KEY (user_id)
    REFERENCES User (id)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION),
  CONSTRAINT `fk_Post_Comment`
    FOREIGN KEY (post_id)
    REFERENCES Post (id)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);

1 Ответ

0 голосов
/ 30 июня 2019

Да, у меня была одна лишняя скобка.Спасибо, ребята.

CREATE TABLE IF NOT EXISTS Comment (
  id INT NOT NULL AUTO_INCREMENT,
  content VARCHAR(15) NOT NULL,
  date_posted DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  user_id INT NOT NULL,
  post_id INT NOT NULL,
  PRIMARY KEY (id),
  CONSTRAINT `fk_User_Comment`
    FOREIGN KEY (user_id)
    REFERENCES User (id)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_Post_Comment`
    FOREIGN KEY (post_id)
    REFERENCES Post (id)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION);
...