【问题标题】:When i tried to a insert a row, it give me Error Code:1452当我尝试插入一行时,它给了我错误代码:1452
【发布时间】:2018-12-23 00:04:38
【问题描述】:
CREATE TABLE IF NOT EXISTS `game_review`.`comments` (
  `comment_id` INT NOT NULL AUTO_INCREMENT,
  `iduser` INT NOT NULL,
  `datePosted` DATETIME NOT NULL,
  `comments` LONGTEXT NOT NULL,
  `idgame` INT NOT NULL,
  PRIMARY KEY (`comment_id`),
  UNIQUE INDEX `comments_id_UNIQUE` (`comment_id`),
  INDEX `comment_user_id_idx` (`iduser`),
  INDEX `comment_game_id_idx` (`idgame`),
  CONSTRAINT `comment_user_id`
    FOREIGN KEY (`iduser`)
    REFERENCES `game_review`.`users` (`user_id`)
    ON DELETE CASCADE
    ON UPDATE NO ACTION,
  CONSTRAINT `comment_game_id`
    FOREIGN KEY (`idgame`)
    REFERENCES `game_review`.`games` (`game_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


CREATE TABLE IF NOT EXISTS `game_review`.`users` (
  `user_id` INT NOT NULL AUTO_INCREMENT,
  `email_address` VARCHAR(45) NOT NULL,
  `password` VARCHAR(6) NOT NULL,
  `username` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`user_id`),
  UNIQUE INDEX `user_id_UNIQUE` (`user_id`))
ENGINE = InnoDB;

这是动作:

INSERT INTO game_review.comments (iduser,datePosted,comments,idgame) VALUES(1,NOW(),"dsds",1)

这是回复:

错误代码:1452。无法添加或更新子行:外键约束失败 (game_review.comments, CONSTRAINT comment_game_id FOREIGN KEY (idgame) REFERENCES games (game_id) ON DELETE CASCADE ON UPDATE CASCADE)

【问题讨论】:

    标签: mysql-workbench


    【解决方案1】:

    您的games 表中没有存储 id 为 1 的游戏,这就是您收到错误的原因,因为 cmets 表有一个指向该表的 FK。

    【讨论】:

    • 我明白了 :) 我去试试在游戏桌上放点东西
    • 顺便问一下,你能解释一下这个 FOREIGN_KEY_CHECKS = 0 是什么意思吗?我早些时候在 youtube 上搜索了错误 1452 的解决方案,我看到了这个
    • 这是一个设置,当设置为 0 时会删除对外键的检查。因此,如果您应用它,您的插入将起作用,您可以在之后插入游戏,但如果可以的话,这应该是一个临时解决方法'不能用其他方法解决。最好按正确的顺序做事。
    猜你喜欢
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    相关资源
    最近更新 更多