异常意外令牌:SMALLINT;而自动增量主键
Posted
技术标签:
【中文标题】异常意外令牌:SMALLINT;而自动增量主键【英文标题】:Exception unexpected token: SMALLINT; while AUTOINCREMENTing PRIMARY KEY 【发布时间】:2016-02-21 05:16:12 【问题描述】:以下是我的一段代码。但是当我执行时会生成以下异常。 net.ucanaccess.jdbc.UcanaccessSQLException:意外令牌:SMALLINT
String sql= "CREATE TABLE "+emailId.getText()+"Inbox (id integer PRIMARY KEY AUTOINCREMENT,fromId varchar(50), InMsgs varchar(200))";
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
con=DriverManager.getConnection("jdbc:ucanaccess://path/Email.accdb");
st=con.createStatement();
con.setAutoCommit(false);
check2=st.executeUpdate(sql);
我在带有 UCanAccess 2.0.9.4 的 netbeans 中使用 MSAccess 数据库、Java SE 8。 有什么问题
【问题讨论】:
如果你这样做id AUTOINCREMENT
会怎样?
没有整数? @shmosel
如果我使用id Primary Key AUTOINCREMENT
那么我得到unexpected token :Primary
作为例外@shmosel
但我不是这么说的。
没有整数是什么意思? @shmosel
【参考方案1】:
你的查询应该是这样的
CREATE TABLE "+emailId.getText()+"Inbox
(id AUTOINCREMENT PRIMARY KEY ,
fromId varchar(50),
InMsgs varchar(200))
AUTOINCREMENT 已指定,因此不需要“整数”。 Primary Key
关键字也应该在数据类型之后。
【讨论】:
它创建表。但是当我尝试打开它时,我得到了错误:“ Reserved error(-5001);there is no message for this error” @Ticktick 您是否尝试过来自 msaccess 的相同查询?只需尝试检查结果..还可以发布您尝试过的完整查询。 @Ticktick 表名创建中的任何空格? 使用的是哪个版本的 msaccess? @Ticktick 尝试下载最新的UcanAccess link以上是关于异常意外令牌:SMALLINT;而自动增量主键的主要内容,如果未能解决你的问题,请参考以下文章