【发布时间】:2026-01-11 16:05:01
【问题描述】:
我正在尝试建立一个论坛网站并设计评论数据库架构。这是我写的。问题是当我发表评论时,我收到了这个错误。
(1452, '无法添加或更新子行:外键约束失败 (reddit.comments, CONSTRAINT comments_ibfk_2 FOREIGN KEY (parentID) REFERENCES comments (commentID) ON DELETE CASCADE ON更新级联)')
我明白为什么我会收到此错误,但我不确定如何解决它。如果可能的话,我想在不创建新回复表的情况下解决它。有没有办法添加不是回复的评论,将其 parentID 设置为零或其他表明它不是回复的值?
CREATE TABLE comments (
commentID INT NOT NULL AUTO_INCREMENT,
postID INT NOT NULL,
parentID INT NOT NULL DEFAULT 0,
username VARCHAR(30) NOT NULL,
createdAt DATETIME NOT NULL,
title VARCHAR(80) NOT NULL,
content TEXT NOT NULL,
PRIMARY KEY(commentID),
FOREIGN KEY(postID) REFERENCES posts(postID)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(parentID) REFERENCES comments(commentID)
ON UPDATE CASCADE
ON DELETE CASCADE,
FOREIGN KEY(username) REFERENCES users(username)
ON UPDATE CASCADE
ON DELETE CASCADE
)
【问题讨论】:
-
试试可以为空的
parentID
标签: mysql sql foreign-keys sql-insert create-table