CREATE TABLE 语句中的语法错误

Posted

技术标签:

【中文标题】CREATE TABLE 语句中的语法错误【英文标题】:Syntax error in CREATE TABLE statement 【发布时间】:2014-03-19 12:09:43 【问题描述】:

我在运行时创建了一个 MS Access 数据库并尝试创建一个表。 下面的代码在运行时创建表时显示错误“”。

cmmd.CommandText = "CREATE TABLE tblContacts( [SectionID] AUTOINCREMENT PRIMARY KEY,[ScetionName] Text(50), [CatID] Number(Integer), [Rate] Number(Double), [Prefix] Text(5), [Suffix] Text(5), [NextNumber] Number(Integer), [Inactive] Yes, [ModUserID] Number(Integer),[ModDate] Date)";
cmmd.ExecuteNonQuery();

【问题讨论】:

By learning the basics 看看这个问题:***.com/questions/1388971/… 【参考方案1】:

Access db 引擎将拒绝字段类型声明,例如 Number(Integer)。假设您将从 OleDb 连接执行语句,请使用这个 ...

cmmd.CommandText = "CREATE TABLE tblContacts( [SectionID] COUNTER PRIMARY KEY,[ScetionName] Text(50), [CatID] Long, [Rate] Double, [Prefix] Text(5), [Suffix] Text(5), [NextNumber] Number(Integer), [Inactive] YesNo, [ModUserID] Long,[ModDate] DateTime)";

您可以在此处找到包含有效 Access DDL 字段类型声明的表:Field type reference - names and values for DDL, DAO, and ADOX

【讨论】:

谢谢@HansUp。它运作良好。请帮助我处理人际关系。 CatID 应该来自 Category 表?如何将 CatID 字段与 tblCategory 相关联? 使用REFERENCES 关键字。有关示例,请参见 here --- 查看 “创建预订表” 下的示例。如果遇到麻烦,请发布新问题。

以上是关于CREATE TABLE 语句中的语法错误的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 语法错误中的 CREATE TABLE

org.h2.jdbc.JdbcSQLSyntaxErrorException:SQL 语句“CREATE[*] SCHEMA DATABASE”中的语法错误; SQL 语句:

SQL 语句“CREATE EXTENSION[*] IF NOT EXISTS UUID_OSSP”中的语法错误

MySQL 函数 Create Table 给了我一个语法错误

SQL create语句自动递增附近的语法不正确

为啥这个 MySQL CREATE TABLE 语句失败?