1
Успех в создании таблицы без ENUM, с ним я получаю это исключение с использованием БД Derby в JavaSQL Ошибка синтаксиса в JDBC при создании таблицы с ENUM
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
Что такое TYPE ENUM? – Abdelhak
ТИП - это Идентификатор, объяснение ENUM: https://en.wikipedia.org/wiki/Enumerated_type – Arthur
Проблема заключается в том, что серверу базы данных не нравится ваш sql. Попробуйте найти правильный синтаксис для поставщика базы данных. – Dima