Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/88.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
Java H2数据库在创建序列上引发意外的JdbcSQLException_Java_Sql_Hibernate_H2 - Fatal编程技术网

Java H2数据库在创建序列上引发意外的JdbcSQLException

Java H2数据库在创建序列上引发意外的JdbcSQLException,java,sql,hibernate,h2,Java,Sql,Hibernate,H2,为了测试我的DAO对象,我正在尝试编写一个内存中的数据库。我得到以下堆栈跟踪: Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement " CREATE SEQUENCE CE0AOFQ AS[*] BIGINT START WITH 1 INCREMENT BY 1"; SQL statement: CREATE SEQUENCE CE0AOFQ AS BIGINT START WITH 1 INCREME

为了测试我的DAO对象,我正在尝试编写一个内存中的数据库。我得到以下堆栈跟踪:

Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement " CREATE SEQUENCE CE0AOFQ AS[*] BIGINT START WITH 1 INCREMENT BY 1"; SQL statement:
 CREATE SEQUENCE CE0AOFQ AS BIGINT START WITH 1 INCREMENT BY 1 [42000-196]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:179)
    at org.h2.message.DbException.get(DbException.java:155)
    at org.h2.message.DbException.getSyntaxError(DbException.java:191)
    at org.h2.command.Parser.getSyntaxError(Parser.java:534)
    at org.h2.command.Parser.prepareCommand(Parser.java:261)
    at org.h2.engine.Session.prepareLocal(Session.java:578)
    at org.h2.engine.Session.prepareCommand(Session.java:519)
    at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1204)
    at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:132)
    at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:121)
    at org.springframework.jdbc.datasource.init.ResourceDatabasePopulator.executeSqlScript(ResourceDatabasePopulator.java:169)
尝试将此命令执行到名为
init.sql
的文件中时:

CREATE SEQUENCE CE0AOFQ AS BIGINT START WITH 1 INCREMENT BY 1;
就我所检查的(例如),这个查询似乎是正确的


知道这为什么不起作用吗?

您不能在h2中指定序列的数据类型。它总是很有趣

使用:


不能在h2中指定序列的数据类型。它总是很有趣

使用:

如果有人(像我一样)在H2数据库语法方面遇到困难,请遵循的建议并阅读实际内容。您可能会找到好的建议,例如:

创建一个新序列。序列的数据类型是BIGINT。使用过的值永远不会重复使用,即使在回滚事务时也是如此

这意味着您无法更改它。

对于任何在H2数据库语法方面有困难的人(如我),请遵循的建议并阅读实际版本。您可能会找到好的建议,例如:

创建一个新序列。序列的数据类型是BIGINT。使用过的值永远不会重复使用,即使在回滚事务时也是如此


这意味着您无法更改它。

该链接适用于sql server。。。但是你用的是h2。试一试文档,我猜他们会使用几乎相同的语法?表的创建和插入工作得非常好,总是有一些细微的差别。最好使用h2文档而不是SQL server文档,语法略有不同。感谢sql server的链接。。。但是你用的是h2。试一试文档,我猜他们会使用几乎相同的语法?表的创建和插入工作得非常好,总是有一些细微的差别。最好使用h2文档而不是SQL server文档,语法略有不同。感谢我,感谢兰斯·爪哇。谢谢多亏了兰斯·爪哇,我正要回答我自己。谢谢
CREATE SEQUENCE CE0AOFQ START WITH 1 INCREMENT BY 1;