当前位置: 首页 > 知识库问答 >
问题:

使用UCanAccess创建表后,ms access未强制Not null约束

钱志强
2023-03-14

这是这个问题的后续。现在新的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);

共有1个答案

左丘阳晖
2023-03-14

这可以追溯到Jackcess 2.1.10的一个已知问题。应该会在Jackcess和UCanAccess即将发布的版本中分别修复。

 类似资料:
  • 问题内容: 我正在使用Java 2 ee开发Web应用程序。我也使用hibernate和MySQL。为了还原备份文件,在我的应用程序中的某个点上,我需要删除当前数据库并重新创建它,我按如下操作: 删除并重新创建后,我需要使用默认用户(Spring Security用户)初始化数据库 但在最后一行应用程序抛出此异常 我知道hibernate在启动时会创建表,但是在这种情况下,它在drop / rec

  • 我已经尝试了这里和web上找到的大多数示例,但我无法打开MS access数据库(2002或2013)并使用UCANAccess获得可更新的结果集。同样的代码使用jdbc:odbc驱动程序/connection/works。我编写了简短的测试代码来检查concur_updatable来检查这一点,所以我一定遗漏了什么。我在Win7机器上使用JDK1.7。我还有另一台机器也有同样的结果。这是有效的:

  • 这是我的限制: 该查询证明约束实际上不起作用: 下面是输出: 为什么唯一性没有被强制执行?

  • 问题内容: 我们如何确保列表中的各个字符串不为null /空白或遵循特定的模式 我也想添加图案 但是我可以不用它。但是我绝对希望有一个约束,它可以检查列表中的任何字符串是否为null或空白。而且Json模式看起来如何 问题答案: 您可以为电子邮件字符串创建一个简单的包装类: 然后在现有对象中标记该字段: 然后,验证器将验证列表中的每个对象。

  • 问题内容: 我试图用Final中的值更新表Original。我是SQL的新手,但是我已经花了两个小时尝试更改各种样本以满足我的需求。我正在使用Access 2007。 问题答案: 我不确定您的陈述仅返回一行。如果要使用分配语句对表执行更新,则 必须 确保它仅返回一行。 除此之外,您可以考虑下一个解决方案: 请注意,只有当两者都是表和表中的唯一键并且它们之间具有适当的关联时,这才可以正常工作。

  • 我试图通过读取csv在Spark中创建一个dataframe,问题是如果我不做任何特别的事情,dataframe将每个列类型都作为字符串: 为了解决这个问题,我添加选项“inferschema”为true,如下所示: