diff --git a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesBase.java b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesBase.java index 4b92e7e..80c65e5 100644 --- a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesBase.java +++ b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesBase.java @@ -63,8 +63,11 @@ public abstract class SequencesBase { } InputStream inputStream = new ByteArrayInputStream(sql.getBytes(StandardCharsets.UTF_8)); 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.execute(dataSource); diff --git a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java index 07af529..7293a2e 100644 --- a/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java +++ b/src/main/java/com/yanghuanglin/seq/dao/impl/SequencesDaoImpl.java @@ -58,7 +58,9 @@ public class SequencesDaoImpl extends SequencesBase implements SequencesDao { @Override public void createTable() { 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_trigger.sql"); } diff --git a/src/main/resources/dm/create_table_sequences_trigger.sql b/src/main/resources/dm/create_table_sequences_trigger.sql new file mode 100644 index 0000000..25f0b7d --- /dev/null +++ b/src/main/resources/dm/create_table_sequences_trigger.sql @@ -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; \ No newline at end of file diff --git a/src/main/resources/mysql/create_table_sequences.sql b/src/main/resources/mysql/create_table_sequences.sql index ff8c9a4..392d8b2 100644 --- a/src/main/resources/mysql/create_table_sequences.sql +++ b/src/main/resources/mysql/create_table_sequences.sql @@ -3,6 +3,6 @@ CREATE TABLE IF NOT EXISTS `sequences` `key` VARCHAR(64) NOT NULL COMMENT '序号英文名称', `type` VARCHAR(64) 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`) ) COMMENT '当前序号表'; \ No newline at end of file