我正在使用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");