我正在使用UCanAccess JDBC驱动程序(版本3.0.3.1)连接到mdb文件。我需要将该列添加到现有表中。问题是该语句

ALTER TABLE TEmployee ADD COLUMN NotificationsEnabled BINARY


引发异常:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.x.x Feature not supported yet.


似乎没有较新的UCanAccess版本。

在这种情况下我该怎么办?由于多种原因,我不想使用ODBC驱动程序(此处描述-Manipulating an Access database from Java without ODBC

我看到的唯一解决方案是创建表的副本(例如TEmployeeBackup)以保存数据,然后删除并使用新字段重新创建原始表,然后将数据从TEmployeeBackup移回TEmployee。但是这种解决方案对我来说似乎很糟糕。

最佳答案

UCanAccess 4.0.0及更高版本现在支持ALTER TABLE,例如,

Statement stmt = conn.createStatement();
stmt.execute("ALTER TABLE TableName ADD COLUMN newCol LONG");

10-08 16:02