修复达梦数据库下自动创建表时不会自动变更更新时间问题
This commit is contained in:
@@ -63,8 +63,11 @@ public abstract class SequencesBase {
|
|||||||
}
|
}
|
||||||
InputStream inputStream = new ByteArrayInputStream(sql.getBytes(StandardCharsets.UTF_8));
|
InputStream inputStream = new ByteArrayInputStream(sql.getBytes(StandardCharsets.UTF_8));
|
||||||
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(new InputStreamResource(inputStream));
|
ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(new InputStreamResource(inputStream));
|
||||||
if (Objects.equals(dbType.getSeries(), DbType.PostgreSQL.getSeries()) && fileName.endsWith("function.sql")) {
|
if (Objects.equals(dbType.getSeries(), DbType.DM_DBMS.getSeries()) && fileName.endsWith("trigger.sql")) {
|
||||||
// 函数文件只能有一个函数,并且函数文件不要通过;分隔
|
// 触发器文件不要通过;分隔,整个文件一起执行
|
||||||
|
databasePopulator.setSeparator(ScriptUtils.EOF_STATEMENT_SEPARATOR);
|
||||||
|
} else if (Objects.equals(dbType.getSeries(), DbType.PostgreSQL.getSeries()) && fileName.endsWith("function.sql")) {
|
||||||
|
// 函数文件不要通过;分隔,整个文件一起执行
|
||||||
databasePopulator.setSeparator(ScriptUtils.EOF_STATEMENT_SEPARATOR);
|
databasePopulator.setSeparator(ScriptUtils.EOF_STATEMENT_SEPARATOR);
|
||||||
}
|
}
|
||||||
databasePopulator.execute(dataSource);
|
databasePopulator.execute(dataSource);
|
||||||
|
|||||||
@@ -58,7 +58,9 @@ public class SequencesDaoImpl extends SequencesBase implements SequencesDao {
|
|||||||
@Override
|
@Override
|
||||||
public void createTable() {
|
public void createTable() {
|
||||||
this.createTableByFile("create_table_sequences.sql");
|
this.createTableByFile("create_table_sequences.sql");
|
||||||
if (Objects.equals(dbType.getSeries(), DbType.PostgreSQL.getSeries())) {
|
if (Objects.equals(dbType.getSeries(), DbType.DM_DBMS.getSeries())) {
|
||||||
|
this.createTableByFile("create_table_sequences_trigger.sql");
|
||||||
|
} else if (Objects.equals(dbType.getSeries(), DbType.PostgreSQL.getSeries())) {
|
||||||
this.createTableByFile("create_table_sequences_function.sql");
|
this.createTableByFile("create_table_sequences_function.sql");
|
||||||
this.createTableByFile("create_table_sequences_trigger.sql");
|
this.createTableByFile("create_table_sequences_trigger.sql");
|
||||||
}
|
}
|
||||||
|
|||||||
8
src/main/resources/dm/create_table_sequences_trigger.sql
Normal file
8
src/main/resources/dm/create_table_sequences_trigger.sql
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
CREATE OR REPLACE TRIGGER "SEQUENCES_UPDATE_TIME"
|
||||||
|
BEFORE UPDATE
|
||||||
|
ON "sequences"
|
||||||
|
referencing OLD ROW AS "OLD" NEW ROW AS "NEW"
|
||||||
|
FOR EACH ROW
|
||||||
|
BEGIN
|
||||||
|
:NEW."UPDATE_TIME" := CURRENT_TIMESTAMP;
|
||||||
|
END;
|
||||||
@@ -3,6 +3,6 @@ CREATE TABLE IF NOT EXISTS `sequences`
|
|||||||
`key` VARCHAR(64) NOT NULL COMMENT '序号英文名称',
|
`key` VARCHAR(64) NOT NULL COMMENT '序号英文名称',
|
||||||
`type` VARCHAR(64) NOT NULL COMMENT '序号类型',
|
`type` VARCHAR(64) NOT NULL COMMENT '序号类型',
|
||||||
`seq` BIGINT(20) NOT NULL COMMENT '已使用到的序号',
|
`seq` BIGINT(20) NOT NULL COMMENT '已使用到的序号',
|
||||||
`update_time` DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '最后使用时间',
|
`update_time` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后使用时间',
|
||||||
PRIMARY KEY (`key`, `type`)
|
PRIMARY KEY (`key`, `type`)
|
||||||
) COMMENT '当前序号表';
|
) COMMENT '当前序号表';
|
||||||
Reference in New Issue
Block a user