“AFTER”不支持使用ucanaccess ALTER TABLE?

Posted

技术标签:

【中文标题】“AFTER”不支持使用ucanaccess ALTER TABLE?【英文标题】:"AFTER" not suport using ucannacess ALTER TABLE? 【发布时间】:2019-12-19 02:04:01 【问题描述】:

为什么 ucannacess ALTER TABLE 不支持“AFTER”?

我想在现有列表的位置添加列;使用数据库.accdb

sql = "ALTER TABLE tableName ADD COLUMN newColumnName VARCHAR(50) AFTER columnNameExist";

示例

sql = "ALTER TABLE car ADD COLUMN information VARCHAR(50) AFTER name ";

例外

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.4 java.sql.SQLSyntaxErrorException:意外令牌:AFTER

【问题讨论】:

@Shashanth 感谢您更好地编辑问题。直到现在我还没有找到上述问题的答案 我的项目中没有使用 MS-Access 数据库。我使用像 mysql 这样的 RDBMS。我浏览了 MS-Access ALTER 命令的官方文档。但是,我没有找到任何可以与ALTER 命令一起使用的关键字AFTER。所以,我认为 MS-Access 不支持 AFTER 命令。因此,该错误在您的情况下是有效的。 @ScaryWombat 先生,这个问题与 MySQL 无关,而是与 MS-Access 有关。你用错误的欺骗目标标记了它。 @Shashanth 感谢您引起我的注意。我不得不非常努力地寻找这与 ms-access 有关。也许一个标签会更好。 @ScaryWombat 我认为这与mysql有关,因为使用的语法是相同的:) 【参考方案1】:

不要使用 ADD COLUMN 而不是仅使用“ADD”代替“ADD COLUMN” 示例:ALTER TABLE members ADD date_of_registration date NULL AFTER date_of_birth; 希望这行得通。

【讨论】:

感谢您的回复。但这仍然显示错误“找不到类型或用户缺少权限:AFTER” 能否请您尝试将 table_name 放在双引号中。

以上是关于“AFTER”不支持使用ucanaccess ALTER TABLE?的主要内容,如果未能解决你的问题,请参考以下文章

不使用 UCanAccess 从 Java 8 连接到 Access 数据库

UCanAccess/Jackcess 在 Access 中创建查看/保存查询

如果在 UCanAccess 中不存在

为啥UCanAccess 需要密码而Jackcess 不需要?

GENERATED ALWAYS AS IDENTITY 使用 UCanAccess 生成不正确的表模式

Android Studio 中的 UCanAccess 出现“给定文件不存在”错误