“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 需要密码而Jackcess 不需要?