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

在MariaDB中创建Spring批处理表失败

安坚诚
2023-03-14

我使用这个模式在mariadb-https://github.com/spring-projects/spring-batch/blob/master/spring-batch-core/src/main/resources/org/springframework/batch/core/schema-mysql.sql中创建Spring批处理表。

BATCH_JOB_EXECUTION_PARAMS表失败,错误如下

Error: (conn=10719030) This table type requires a primary key
SQLState:  42000
ErrorCode: 1173

共有1个答案

翁烨霖
2023-03-14

如果主键(JOB_EXECUTION_ID,KEY_NAME)是唯一的,则将其添加到batch_job_execution_params

batch_job_execution_seq也没有PK。unique键可以升级为PK。(其他一些表也是如此。)那个特殊的表相当奇怪--它将一个1字节的unique_key变成了一个8字节的id!?!

batch_job_execution_params是经典EAV模式的一个非常糟糕的变体。

 类似资料:
  • 反正可以禁用SQL,我只是想测试我的读写器和处理器工作正常。

  • 问题内容: 我只是使用Spring Batch框架创建了一个批处理作业,但是我没有运行CREATE SQL的数据库特权。当我尝试运行批处理作业时,在框架尝试创建TABLE_BATCH_INSTANCE时遇到错误。我尝试禁用 但是我尝试后仍然遇到错误 无论如何都可以禁用SQL,我只想测试我的阅读器编写器和处理器是否正常工作。 问题答案: 使用Spring Boot 2.0,你可能需要以下代码:htt

  • 我正在使用Spring Batch,我知道它可以自动创建元表。我不需要它们,我尝试了:或,我总是有这个错误:

  • 在MariaDB中,语句用于在选定的数据库中创建表。使用语句创建一个具有给定名称()的表。 必须具有表或数据库的权限才能创建表。 语法如下 - 在最基本的形式中,语句提供了一个表名称,后跟一列,索引和约束。 默认情况下,该表是在默认数据库中创建的。 用指定一个数据库。 如果引用表名称,则必须分别将数据库名称和表名引用为.。 这对于是特别有用的,因为它允许在包含来自其他数据库的数据的数据库中创建表。

  • 我想用MariaDB创建一个表 但我有一个错误: #1064-您的SQL语法有错误;查看与您的MariaDB服务器版本相对应的手册,以获得使用“match(a INT AUTO_INCREMENT NOT NULL主键,b INT NOT NULL,”at line 1“的正确语法 问题出在哪里?

  • 在Spring batch中(请参见https://docs.Spring.io/spring-batch/3.0.x/reference/html/metadataschema.html),有六个表: batch_job_execution batch_job_execution_context batch_job_execution_params batch_job_instance batc