如何使用 UCanAccess 在两列上创建具有唯一约束的表?
Posted
技术标签:
【中文标题】如何使用 UCanAccess 在两列上创建具有唯一约束的表?【英文标题】:How to CREATE TABLE with unique constraint on two columns using 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:意外令牌:需要索引:( 【参考方案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);
现在按预期工作。
【讨论】:
以上是关于如何使用 UCanAccess 在两列上创建具有唯一约束的表?的主要内容,如果未能解决你的问题,请参考以下文章