当前位置: 首页 > 知识库问答 >
问题:

SQL语句中的语法错误-应为标识符

斜瑞
2023-03-14

我有一个 springboot 应用程序,我想将我的应用程序连接到 H2 数据库。下面是我的架构。

CREATE TABLE IF NOT EXISTS employee 
(
      id INTEGER AUTO_INCREMENT  PRIMARY KEY,
      first_name VARCHAR(250) NOT NULL,
      last_name VARCHAR(250) NOT NULL,
      email VARCHAR(250) NOT NULL,
      posit VARCHAR(250) NOT NULL,
      mobile INTEGER NOT NULL
);

下面是我的应用程序属性。

spring.jpa.defer-datasource-initialization=true
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.path=/h2-console
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=false

spring.datasource.initialize=true
spring.datasource.schema=schema.sql
spring.datasource.data=schema.sql
spring.jpa.hibernate.ddl-auto = update


logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE

但是,我面临以下问题:

由:org.h2.jdbc引起。JdbcSQLSyntaxErrorException:SQL语句“create table employee(id bigint not null auto_increment,email varchar(255),first_name varchar,last_name varchar),mobile integer,position varchar 255,primary key(id))engine[*]=InnoDB”中出现语法错误;应为“标识符”;SQL语句。

我可以知道问题是什么以及如何更改吗?

共有2个答案

闻人和泽
2023-03-14

错误消息指出您的< code>CREATE语句的这个位置有语法错误:

engine[*]=InnoDB

h2不知道如何使用引擎关键字。这行不通。

要修复它,您应该检查员工表的 CREATE 语句并删除引擎 [*]=InnoDB 部分。如果您还使用该脚本来设置 MySQL 数据库,并且需要此引擎部分,则可以在文件顶部设置以下行:

/*! SET storage_engine=INNODB */;

这应该使其与H2和MySQL一起使用。

这也是一个出现相同问题的谷歌组。

云季同
2023-03-14

我相信您共享的模式与有错误的模式不一样,您可以检查并共享相应的模式吗?

CREATE TABLE IF NOT EXISTS employee (
  id INTEGER AUTO_INCREMENT  PRIMARY KEY,
  first_name VARCHAR(250) NOT NULL,
  last_name VARCHAR(250) NOT NULL,
  email VARCHAR(250) NOT NULL,
  posit VARCHAR(250) NOT NULL,
  mobile INTEGER NOT NULL
);

因为在这个链接中,错误是在架构中,而您共享的架构在小提琴上完美地工作

我不是sql专家,所以我可能是错的。

 类似资料:
  • 我在尝试使用flyway和hibernate为PostgresSql创建表时遇到语法错误的问题。Trip类与其他类没有关系(还没有)。我已经成功地为其他两个类创建了购买和用户,但是这个只是给出了错误。 错误信息: [错误]测试运行:1,失败:0,错误:1,跳过:0,所用时间:3.003秒 SQL状态:42000错误代码:42000消息:SQL语句“CREATE TABLE TRIP(ID BIGI

  • 尝试在启动时将数据实现到我的Spring Boot应用程序中。正如我所研究的,它应该是这样工作的: 用户角色类: 模式。sql data.sql 应用属性 但是,如果我尝试这样做,在构建应用程序时只会出现以下错误: SQL语句CREATE TABLE(BIGINT([*] 20)NOTNULL,VARCHAR(255)DEFAULT NULL, PRIMary KEY()ENGINE=INNODB

  • 问题内容: 好的,我有一个非常简单的mysql数据库,但是当我尝试通过mysql-admin运行此查询时,出现奇怪的错误 INSERT INTO自定义报告(研究,类型,模式,选择,描述)VALUES(‘1’,‘2’,‘3’,‘4’,‘5’); 错误: 1064-您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以便在“选择,描述” VALUES(“ 1”,“ 2”,“

  • 错误消息: [错误]运行得测试:1,失败:0,错误:1,跳过得:0,运行得时间:3.003s<<<失败!-在org.studentnr.backend.service.userserviceTest[错误]org.studentnr.backend.service.userserviceTest.testCreateUser所用时间:0.004s<<<错误!java.lang.IllegalSta

  • 我从Spring Boot进行了升级 它创建序列,但不创建任何表。查看跟踪,它显示了创建表中的语法错误 SQL:SQL 语句中的语法错误(一个示例): 事实上,检查qith H2控制台或SQl linter它将“IDENTITY[*]”标记为错误,否则它将在H2中工作。 第二次尝试也是失败的。我把 并将Spring文档 https://docs.spring.io/spring-batch/doc

  • 我正在查看https://github.com/intoli/remote-browser.我在win10中使用节点11.5工作。我遵循了回购底部的说明: 现在,当我尝试使用以下命令运行它时: 我怎样才能让它工作? 编辑索引。js: 编辑2: