You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL代码报错:表名无效、缺失右括号,求约束部分语法修正

问题诊断与修正方案

核心错误点

  • 表名引用不匹配:创建"User"表时用了双引号,但后续UserFeed表引用它时未加引号,部分数据库(如Oracle、PostgreSQL)对带引号的标识符严格区分大小写,必须完全匹配创建时的格式。
  • 多约束间缺失分隔逗号:Post、Story、Archive表中,多个FOREIGN KEY约束之间没有用逗号分隔,这是触发missing right parenthesis报错的直接原因。
  • 约束名重复:FK_UserFeedID这个约束名在FactCheck、Post、Story表中重复使用,数据库要求约束名必须全局唯一。

修正后的完整代码

DROP TABLE "User";
DROP TABLE "UserFeed";
DROP TABLE "Post";
DROP TABLE "Story";
DROP TABLE "FactCheck";
DROP TABLE "Archive";


CREATE TABLE "User" (
    UserID INT NOT NULL PRIMARY KEY,
    Username VARCHAR(30) NOT NULL,
    FirstName VARCHAR(30) NOT NULL,
    LastName VARCHAR(30) NOT NULL,
    DateOfBirth DATE NOT NULL,
    Email VARCHAR(50) NOT NULL
);

CREATE TABLE "UserFeed" (
    UserFeedID CHAR(10) NOT NULL PRIMARY KEY,
    PostCount INT NOT NULL,
    FollowerCount INT NOT NULL,
    FollowingCount INT NOT NULL,
    UserID INT NOT NULL,
    CONSTRAINT FK_UserUserFeed
    FOREIGN KEY (UserID)
    REFERENCES "User"(UserID)
);

CREATE TABLE "FactCheck" (
    RevisionID INT PRIMARY KEY NOT NULL,
    TrueFalse VARCHAR(1) NOT NULL,
    UserFeedID CHAR(10) NOT NULL,
    CONSTRAINT FK_FactCheck_UserFeedID
    FOREIGN KEY (UserFeedID)
    REFERENCES "UserFeed"(UserFeedID)
);

CREATE TABLE "Post" (
    PostID CHAR(10) PRIMARY KEY NOT NULL,
    Caption VARCHAR(300) NULL,
    LikeCount INT NOT NULL,
    CommentCount INT NOT NULL,
    DatePosted DATE NULL,
    UserFeedID CHAR(10) NOT NULL,
    RevisionID INT NOT NULL,
    CONSTRAINT FK_Post_UserFeedID
    FOREIGN KEY (UserFeedID)
    REFERENCES "UserFeed"(UserFeedID),
    CONSTRAINT FK_Post_RevisionID
    FOREIGN KEY (RevisionID)
    REFERENCES "FactCheck"(RevisionID)
);

CREATE TABLE "Story" (
    StoryID CHAR(10) PRIMARY KEY NOT NULL,
    StoryCaption VARCHAR(100) NULL,
    Duration INT NOT NULL,
    UserFeedID CHAR(10) NOT NULL,
    StoryDate DATE NULL,
    RevisionID INT NOT NULL,
    CONSTRAINT FK_Story_UserFeedID
    FOREIGN KEY (UserFeedID)
    REFERENCES "UserFeed"(UserFeedID),
    CONSTRAINT FK_Story_RevisionID
    FOREIGN KEY (RevisionID)
    REFERENCES "FactCheck"(RevisionID)
);

CREATE TABLE "Archive" (
    ArchiveID CHAR(10) PRIMARY KEY NOT NULL,
    PostID CHAR(10) NOT NULL,
    StoryID CHAR(10) NOT NULL,
    CONSTRAINT FK_Archive_PostID
    FOREIGN KEY (PostID)
    REFERENCES "Post"(PostID),
    CONSTRAINT FK_Archive_StoryID
    FOREIGN KEY (StoryID)
    REFERENCES "Story"(StoryID)
);

额外说明

  1. 所有表名统一添加双引号,确保标识符匹配规则一致;
  2. 约束名改为FK_表名_关联字段名的格式,彻底避免重复冲突;
  3. 给多约束之间补充逗号,修复语法结构错误;
  4. 调整了代码缩进,提升可读性。

内容的提问来源于stack exchange,提问作者Rohan Omalley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:00:57