我使用此架构在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
答案 0 :(得分:1)
如果将PRIMARY KEY(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模式的一个非常糟糕的变体。
答案 1 :(得分:0)
MySQL和MariaDB是不同的产品,看起来它们在主键方面的行为有所不同。您正在针对不受Spring Batch官方支持的MariaDB服务器使用MySQL DDL脚本。
因此要么相应地修改脚本(手动添加主键),并注意Spring Batch不一定会按预期工作,因为它不正式支持MariaDB,或者在项目的JIRA中打开功能请求以请求支持MariaDB。