我的src/main/resources/data.sql
文件中有以下 data.sql 文件。我希望从 user.csv 文件创建用户表。
DROP TABLE IF EXISTS `USER` CASCADE;
CREATE TABLE `user` AS SELECT * FROM CSVREAD('classpath:user.csv');
Run Code Online (Sandbox Code Playgroud)
当 spring 应用程序启动时,它总是出错并出现以下错误 -
引起原因:org.h2.jdbc.JdbcSQLSyntaxErrorException:SQL 语句“drop table ifexists [*]user CASCADE”中存在语法错误;预期的“标识符”;SQL语句:
我花了很长时间来找出错误,但无法解决。知道如何修复此错误吗?
小智 7
请务必检查您是否能够通过 pgadmin 或 toad 等 DBMS 工具在您使用的数据库上运行相同的查询。我假设你正在使用 postgresql,所以如果你仍然使用 user 关键字,则保留它。需要创建名为 user 的表,它必须用双引号括起来,也许您可以尝试在 Java 中使用双引号而不是单引号,您将需要转义此双引号以包含在此查询文本的字符串文本中
DROP TABLE IF EXISTS "USER" CASCADE;
CREATE TABLE "user" AS SELECT * FROM CSVREAD('classpath:user.csv')
Run Code Online (Sandbox Code Playgroud)