Эх сурвалжийг харах

feat:oracle 序列、触发器接口

xuezizhuo 1 жил өмнө
parent
commit
8027f0ddd7

+ 8 - 1
zkqy-datamodeling/src/main/java/com/zkqy/datamodeling/mapper/TableInfoMapper.java

@@ -221,8 +221,15 @@ public interface TableInfoMapper {
      */
     void createOracleTable(@Param("tableName") String tableName, @Param("filedList") List<String> filedList);
 
-//    void createOracleTable(@Param("username") String username,@Param("tableName") String tableName,@Param("filedList") List<String> filedList);
+    /**
+     * 创建序列
+     */
+    void createSequence(String sequenceName);
 
+    /**
+     * 创建触发器
+     */
+    void createTrigger(@Param("triggerName") String triggerName,@Param("autoField") String autoField);
 
     /**
      * 添加注释

+ 6 - 0
zkqy-datamodeling/src/main/java/com/zkqy/datamodeling/service/impl/TableInfoServiceImpl.java

@@ -648,6 +648,12 @@ public class TableInfoServiceImpl implements ITableInfoService {
             if (filed.getIsNull()) {
                 stringBuilder.append("NOT NULL ");
             }
+//            if(filed.getIsAuto()){
+//                //创建序列
+//                tableInfoMapper.createSequence(tableName);
+//                //创建触发器
+//                tableInfoMapper.createTrigger(tableName,filed.getFieldName());
+//            }
             if (StringUtils.hasLength(filed.getFieldDescription())) {
                 StringBuilder builder = new StringBuilder();
                 builder.append("comment on column ")

+ 19 - 0
zkqy-datamodeling/src/main/resources/mapper/datamodeling/TableInfoMapper.xml

@@ -327,6 +327,25 @@
         )
     </update>
 
+    <update id="createSequence">
+        create sequence ${sequenceName}
+            increment by 1
+            start with 1
+            maxvalue 100000000
+            minvalue 1
+            nocache
+            nocycle
+    </update>
+
+    <update id="createTrigger">
+        create or replace trigger ${triggerName}
+        before insert on ${triggerName}
+        for each row
+        begin
+        select ${triggerName}.nextval into :new.${autoField} from dual;
+        end
+    </update>
+
     <update id="addOracleTableDescription">
         ${description}
     </update>