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

C#使用DDL创建MS Access表时报CONSTRAINT子句语法错误求助

报错原因

你收到Syntax error in CONSTRAINT clause报错的核心原因是外键约束的语法不完整。Access的DDL规则要求,定义FOREIGN KEY时必须同时指定该外键关联的父表名称,以及父表中对应的关联字段,你当前的代码只声明了外键字段是Username,没有补充引用的目标表和字段,因此触发语法错误。

解决方案

方案1:保留外键约束

如果你的业务需要为Username字段关联用户表,假设你的用户表名称为UserInfo,且该表中主键为Username字段,将外键声明行修改为FOREIGN KEY(Username) REFERENCES UserInfo(Username)即可。
*注意:关联的父表必须已经在当前数据库中创建完成,且父表中被引用的字段必须是主键或带有唯一约束,否则外键会创建失败。

修改后的完整代码如下:

_SqlString = "CREATE TABLE QuestionStatID("
                            + "StatID VARCHAR(25) NOT NULL,"
                            + "Username VARCHAR(25) NOT NULL,"
                            + "answerDate VARCHAR(25),"
                            + "Timetaken int,"
                            + "Score int,"
                            + "Difficulty int,"
                            + "PRIMARY KEY(StatID),"
                            + "FOREIGN KEY(Username) REFERENCES UserInfo(Username)"
                            + ")";

方案2:暂时不需要外键约束

如果当前不需要设置外键,直接删除代码中的+ "FOREIGN KEY(Username)"这一行,即可正常执行建表语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:06:04