【问题标题】:How to CREATE TABLE with unique constraint on two columns using UCanAccess?如何使用 UCanAccess 在两列上创建具有唯一约束的表?
【发布时间】:2014-05-28 07:20:29
【问题描述】:

如何使用 jdbc 编写 sql 查询以在 2 列上创建具有唯一约束的表: 我尝试这段代码并给我“SQLException:无效的创建语句!”:

 Connection conn = ConnectDB.getConnection();
    Statement stmt = null;
    try {
            String sql = "CREATE TABLE TBL_fonts" +
                    + "(char_id int not NULL, "
                    + "FW VARCHAR(255), "
                    + "code VARCHAR(255), "
                    + "character VARCHAR(255), "
                    + "CONSTRAINT fontConst UNIQUE(FW,code), "
                    + "PRIMARY KEY (char_id))";
            stmt = conn.createStatement();
            stmt.executeUpdate(sql);
        conn.commit();
    } catch (SQLException ex) {
        ex.printStackTrace();
    }

【问题讨论】:

  • 请包含堆栈跟踪
  • SQL 在 MS-sqlserver 中运行良好,发布您的堆栈跟踪,这可能有助于找出问题所在
  • 引起:java.sql.SQLException:无效的创建语句。在 net.ucanaccess.jdbc.AbstractExecute.addDDLCommand(AbstractExecute.java:103) 在 net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:119) 在 net.ucanaccess.jdbc.ExecuteUpdate.execute(ExecuteUpdate.java:56 ) 在 net.ucanaccess.jdbc.UcanaccessStatement.executeUpdate(UcanaccessStatement.java:160)
  • 尝试-添加唯一索引(column1, column2);
  • 给我:UcanaccessSQLException:意外令牌:需要索引:(

标签: java ms-access jdbc ucanaccess


【解决方案1】:

此问题已在 UCanAccess 2.0.6.2 中修复。代码

String sql = 
        "CREATE TABLE TBL_fonts ("
        + "char_id int not NULL, "
        + "FW VARCHAR(255), "
        + "code VARCHAR(255), "
        + "character VARCHAR(255), "
        + "CONSTRAINT fontConst UNIQUE(FW,code), "
        + "PRIMARY KEY (char_id)"
        + ")";
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);

现在按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多