H2 DB:“CROSS”是 H2 使用的特殊关键字,以避免在创建表语句中使用?

Posted

技术标签:

【中文标题】H2 DB:“CROSS”是 H2 使用的特殊关键字,以避免在创建表语句中使用?【英文标题】:H2 DB: is "CROSS" a special keyword used from H2 to avoid to use in a create table statement? 【发布时间】:2017-03-31 08:39:15 【问题描述】:

我正在尝试创建一个包含几列的简单表。一旦我尝试添加“CROSS”列,就会出现以下异常:

创建表 TABLE_TEST ( 交叉 VARCHAR2(6) , COLUMN_1 TIMESTAMP(6) , COLUMN_2 TIMESTAMP(6) , COLUMN_3 NUMBER(17,3) , COLUMN_4 VARCHAR2(1) ) [42001-194] 42001/42001(帮助) org.h2.jdbc.JdbcSQLException:SQL 语句中的语法错误“CREATE TABLE TABLE_TEST ( CROSS[*] VARCHAR2(6) , COLUMN_1 TIMESTAMP(6) , COLUMN_2 TIMESTAMP(6) , COLUMN_3 NUMBER(17,3) , COLUMN_4 VARCHAR2(1) )";预期的“标识符”;SQL 语句: 创建表 TABLE_TEST ( 交叉 VARCHAR2(6) , COLUMN_1 TIMESTAMP(6) , COLUMN_2 TIMESTAMP(6) , COLUMN_3 NUMBER(17,3) , COLUMN_4 VARCHAR2(1) ) [42001-194] 在 org.h2.message.DbException.getJdbcSQLException(DbException.java:345) 在 org.h2.message.DbException.getSyntaxError(DbException.java:205) 在 org.h2.command.Parser.readColumnIdentifier(Parser.java:3231) 在 org.h2.command.Parser.parseCreateTable(Parser.java:6052) 在 org.h2.command.Parser.parseCreate(Parser.java:4302) 在 org.h2.command.Parser.parsePrepared(Parser.java:364) 在 org.h2.command.Parser.parse(Parser.java:319) 在 org.h2.command.Parser.parse(Parser.java:291) 在 org.h2.command.Parser.prepareCommand(Parser.java:256) 在 org.h2.engine.Session.prepareLocal(Session.java:564) 在 org.h2.engine.Session.prepareCommand(Session.java:505) 在 org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204) 在 org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:170) 在 org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:158) 在 org.h2.server.web.WebApp.getResult(WebApp.java:1380) 在 org.h2.server.web.WebApp.query(WebApp.java:1053) 在 org.h2.server.web.WebApp$1.next(WebApp.java:1015) 在 org.h2.server.web.WebApp$1.next(WebApp.java:1002) 在 org.h2.server.web.WebThread.process(WebThread.java:164) 在 org.h2.server.web.WebThread.run(WebThread.java:89) 在 java.lang.Thread.run(Thread.java:745)

有什么想法吗?

【问题讨论】:

【参考方案1】:

是的,“CROSS”是H2 Keywords / Reserved Words

【讨论】:

以上是关于H2 DB:“CROSS”是 H2 使用的特殊关键字,以避免在创建表语句中使用?的主要内容,如果未能解决你的问题,请参考以下文章

检查 H2 db 文件是不是存在

将 h2 数据库从 h2.db 转换为 mv.db

使用 mongoDB 启动 H2 DB

H2 DB 为空且未显示任何表

CrudRepository 无法在 h2 db 上执行任何查询

以编程方式设置 H2 DB