这是此this问题的后续问题。现在新的UCanAccess版本的错误有点不同。
我使用最新的UCanAccess(4.0.3,包括Jackcess 2.1.9)创建一个包含NOT-NULL列的表的数据库文件,如下所示
// Create a database + connect
DatabaseBuilder.create(FileFormat.V2010, new File(path));
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
conn = DriverManager.getConnection("jdbc:ucanaccess://" + path + ";singleconnection=true" ,"", "");
// Create table
String sql = "CREATE TABLE Test (id AUTOINCREMENT PRIMARY KEY, value CHAR(1) NOT NULL)";
conn.createStatement().executeUpdate(sql);
尝试插入值通过UCanAccess正常工作,对于列'值'按照预期由UCanAccess提供。 但是,当我直接在Access中使用表时,接受NULL!通过UCanAccess处理数据 后来导致问题,因为表格无法写入:
警告:检测到Not Null约束违规,表测试,记录 Row [87:1] [{id = 2,value =}]:使表格只读
从Access中的设计视图中打开并保存表可以解决问题,但从长远来看,这不是一个选项。 如何使Access遵循NOT-NULL约束?