Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用枚举创建表时JDBC中的SQL语法错误_Sql_Derby - Fatal编程技术网

使用枚举创建表时JDBC中的SQL语法错误

使用枚举创建表时JDBC中的SQL语法错误,sql,derby,Sql,Derby,成功地创建了没有枚举的表,我得到了这个异常 在Java中使用Derby数据库 Statement stmt = con.createStatement(); String sql = "CREATE TABLE Coupon (ID BIGINT, TITLE VARCHAR(100), START_DATE DATE, END_DATE DATE, AMOUNT INTEGER, " + " TYPE ENUM('Electronics','Health','Beauty','Restaura

成功地创建了没有枚举的表,我得到了这个异常 在Java中使用Derby数据库

Statement stmt = con.createStatement();
String sql = "CREATE TABLE Coupon (ID BIGINT, TITLE VARCHAR(100), START_DATE DATE, END_DATE DATE, AMOUNT INTEGER, "
+ " TYPE ENUM('Electronics','Health','Beauty','Restaurants','Leisure','Travel'),"
+ " MESSAGE VARCHAR(40), PRICE DOUBLE, IMAGE VARCHAR(100),PRIMARY KEY(ID))";
stmt.executeUpdate(sql);
例外情况:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "(" at line 1, column 113.
at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
at org.apache.derby.client.am.ClientStatement.executeUpdate(Unknown Source)
at a.creatingTables.BuildCouponTable.main(BuildCouponTable.java:27)
 Caused by: ERROR 42X01: Syntax error: Encountered "(" at line 1, column 113.
at org.apache.derby.client.am.ClientStatement.completeSqlca(Unknown Source)
at org.apache.derby.client.am.ClientStatement.completeExecuteImmediate(Unknown Source)
at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMreply(Unknown Source)
at org.apache.derby.client.net.NetStatementReply.readExecuteImmediate(Unknown Source)
at org.apache.derby.client.net.StatementReply.readExecuteImmediate(Unknown Source)
at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(Unknown Source)
at org.apache.derby.client.am.ClientStatement.readExecuteImmediate(Unknown Source)
at org.apache.derby.client.am.ClientStatement.flowExecute(Unknown Source)
at org.apache.derby.client.am.ClientStatement.executeUpdateX(Unknown Source)
... 2 more

尝试使用此查询添加
大小
而不是
类型
,如下所示:

 String sql = "CREATE TABLE Coupon (ID BIGINT, TITLE VARCHAR(100), START_DATE DATE, END_DATE DATE, AMOUNT INTEGER, "
 + " size ENUM('Electronics','Health','Beauty','Restaurants','Leisure','Travel'),"
 + " MESSAGE VARCHAR(40), PRICE DOUBLE, IMAGE VARCHAR(100),PRIMARY KEY(ID))";

尝试使用此查询添加
大小
而不是
类型
,如下所示:

 String sql = "CREATE TABLE Coupon (ID BIGINT, TITLE VARCHAR(100), START_DATE DATE, END_DATE DATE, AMOUNT INTEGER, "
 + " size ENUM('Electronics','Health','Beauty','Restaurants','Leisure','Travel'),"
 + " MESSAGE VARCHAR(40), PRICE DOUBLE, IMAGE VARCHAR(100),PRIMARY KEY(ID))";

什么是类型枚举?类型是标识符,枚举说明:您的问题是数据库服务器不喜欢您的sql。试着用谷歌搜索数据库供应商的正确语法。你应该阅读你正在使用的数据库管理系统的手册,而不是一些甚至不直接与SQL相关的随机文章。Derby中没有枚举这样的东西:什么是类型枚举?类型是标识符,枚举解释:您的问题是数据库服务器不喜欢您的sql。试着用谷歌搜索数据库供应商的正确语法。你应该阅读你正在使用的数据库管理系统的手册,而不是一些甚至不直接与SQL相关的随机文章。Derby中没有枚举: