得到错误"表客户已经存在"当我试图创建一个表在H2内存数据库使用schema.sql.我使用的是Spring启动版本:2.5.4和以下是我的pom.xml.它的工作正常,如果我使用Spring启动版本:2.4.3
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.sample</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.r2dbc</groupId>
<artifactId>r2dbc-h2</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这是我的代码:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Customer {
@Id
String id;
String name;
}
//schema.sql
CREATE TABLE CUSTOMER (id SERIAL PRIMARY KEY, name VARCHAR(255));
@SpringBootApplication
public class ReactivedemoApplication {
public static void main(String[] args) {
SpringApplication.run(ReactivedemoApplication.class, args);
}
@Bean
ConnectionFactoryInitializer initializer(ConnectionFactory connectionFactory) {
ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer();
initializer.setConnectionFactory(connectionFactory);
initializer.setDatabasePopulator(new ResourceDatabasePopulator(new
ClassPathResource("schema.sql")));
return initializer;
}
}
当我启动应用程序时,我收到以下错误。如何强制H2使用schema.sql创建表格?
原因:io。r2dbc。spi。R2dbcBadGrammarException:表“CUSTOMER”已存在;SQL语句:在io处创建表CUSTOMER(id序列主键,名称VARCHAR(255))[42101-200]。r2dbc。h2.h2数据库例外工厂。在io上转换(H2DatabaseExceptionFactory.java:81)~[r2dbc-h2-0.8.4.RELEASE.jar:0.8.4.RELEASE]。r2dbc。h2.h2声明。lambda$execute$2(H2Statement.java:155)~[r2dbc-h2-0.8.4.RELEASE.jar:0.8.4.RELEASE]在Reactor。果心出版商FluxMapFuseable$MapFuseableSubscriber。onNext(FluxMapfusable.java:113)~[reactor-core-3.4.9.jar:3.4.9]。。。44由于:org而省略的公共帧。h2.jdbc。JdbcSQLSyntaxErrorException:表“CUSTOMER”已存在;SQL语句:创建表CUSTOMER(id序列主键,名称VARCHAR(255))[42101-200]
因为spring已经从根位置模式创建了表。不需要sql、ConnectionFactoryInitializer bean。删除ConnectionFactoryInitializer bean声明修复了该问题。
org.h2.jdbc.jdbcsqlsyntaxerrorexception:SQL语句“create TABLE HIBERNATE_SEQUENCE(NEXT_VAL BIGINT)engine=[*]myisam”中存在语法错误;应为“标识符”
我正在用MySQL数据库构建一个django应用程序。当我第一次运行“Python Manage.py Migrate”时,一些表创建得很好,然后出现一些错误。引出的错误是: 完整的回溯是:
我正在尝试使用EclipseLink创建一个表。正在使用的java类是:- EL警告]:2017-04-07 14:04:53.768--ServerSession(1650327539)--异常[EclipseLink-4002](Eclipse持久性服务-2.6.3.v20160428-59C81C5):org.Eclipse.Persistence.exceptions.DatabaseEx
问题内容: 我在Docker容器中有一个MySQL数据库。入口点执行创建数据库的脚本和创建表的脚本。 除了一张桌子,其他所有东西都工作正常。 记录到控制台的错误是 第150行是后面的开括号 MySQL版本:8.0.3-rc-log 主机操作系统:Debian jessie 我开始考虑并且可能是保留关键字,因此我重命名了表和列,但错误仍然存在。 问题答案: @Bill Karwin在第一条评论中
我想创建一个在MySQL中拥有自己数据库所有权限的用户。 当我使用这个用户创建一个表时,MySQL返回SQL server正在使用只读选项运行。 但是,当我改变到另一个现有用户的所有权限上,我可以创建表没有错误。 我想知道只读选项是全局的还是什么? 以下是我使用MySQL root的MySQL命令: 然后我切换到用户"demo": 所以我检查了只读选项,它似乎是打开的。 然而,我尝试使用另一个用户
我试图使用boto3创建一个Dynamodb表。但我得到以下错误: "botocore.exceptions.ClientError:调用CreateTable操作时出错(ValidationExcture):无效的KeySchema:第一个KeySchemaElement不是HASH键类型" 更多信息:我的帐户中没有任何全局表。 我试过的代码: