0

在我得到 的内容后dump,有一个CREATE TABLE查询,但是这个查询在 MS Access 上不起作用,因为Syntax error.

这是来自文件的原始查询dump(适用于 Sqlite 和 MySQL):

 String query ="CREATE TABLE PATIENT("
       + "  ID varchar(45) NOT NULL,"
       + "  NAME varchar(255) DEFAULT NULL,"
       + "  COUNT int(11) DEFAULT NULL,"
       + "  PRIMARY KEY (ID)"
       + ")";

删除DEFAULT NULL并更改int(11)integer执行后。

我可以找到这个问题,但是将来我会期待更多的问题吗?

4

2 回答 2

4

当您移植到不同的后端环境时,您应该始终了解支持的数据类型。 这是访问支持的内容,这里还有关于访问的创建表语法的更多信息。是的,从 MySQL 移植你可能会遇到更多这样的问题。

另请注意文档状态(以防您决定仅使用 Access 作为前端)。

Microsoft Access 数据库引擎不支持将 CREATE TABLE 或任何 DDL 语句用于非 Microsoft Access 数据库引擎数据库。请改用 DAO Create 方法。

于 2013-07-30T23:07:29.853 回答
1

COUNT是 SQL 保留关键字;它用作确定匹配查询的行数的函数。MySQL 和 Sqlite 很宽松,允许您将其用作列名,因为它们可以区分您将其用作列名还是函数名,但这在技术上是不正确的。更改列名称。

此外,Access 的数据类型与标准 SQL 不太匹配;较早答案中提供的链接应该会有所帮助。您可能需要将列定义为 LONG 以匹配您想要的大小。

于 2013-07-30T23:09:57.627 回答