mybatis 動態創建表、主鍵、索引、注釋


1.xxxMapper.xml文件

<!--創建日志表-->
   <update id="createTablelog">
       <![CDATA[ 
        DECLARE lsql varchar2(4000); 
             pk varchar2(50) := '主鍵';
        BEGIN lsql := ' 
            CREATE TABLE ${tableName} ( 
              ID VARCHAR(32) DEFAULT SYS_GUID(),
              TS_ID           NUMBER(12),
              TABLE_NAME      VARCHAR2(200),
              PRIMARY_KEY     VARCHAR2(200),
              PRIMARY_VALUE   VARCHAR2(200),
              START_TIME      TIMESTAMP,
              END_TIME        TIMESTAMP,
              LOG_TYPE        CHAR(1),
              STATE           CHAR(1),
              MSG              VARCHAR2(4000),
              CONSTRAINT ${primaryKey} PRIMARY KEY (ID) USING INDEX)'; 
        EXECUTE IMMEDIATE lsql; 
        
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'ID'|| ' IS ''' || '主鍵' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'TS_ID'|| ' IS ''' || '歸集任務表主鍵' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'TABLE_NAME'|| ' IS ''' || '歸集任務源表英文名稱(即歸集庫中的表英文名稱)' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'PRIMARY_KEY'|| ' IS ''' || '資源表主鍵,多個以英文逗號隔開' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'PRIMARY_VALUE'|| ' IS ''' || '資源表主鍵值,多個以英文逗號隔開' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'START_TIME'|| ' IS ''' || '歸集開始時間' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'END_TIME'|| ' IS ''' || '歸集結束時間' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'LOG_TYPE'|| ' IS ''' || '1、前置機歸集,2、文件歸集,3、API接口歸集' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'STATE'|| ' IS ''' || '歸集狀態,A成功,X失敗' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON COLUMN ' || '${tableName}' ||'.'||'MSG'|| ' IS ''' || '歸集信息' || ''''; 
         EXECUTE IMMEDIATE 'COMMENT ON TABLE ' || '${tableName}' || ' IS ''' || '歸集日志表' || ''''; 
         
        lsql := 'create index ${indexNameTs} on ${tableName} (TS_ID)';
        EXECUTE IMMEDIATE lsql;
        lsql := 'create index ${indexNameTab} on ${tableName} (TABLE_NAME)';
        EXECUTE IMMEDIATE lsql; END; ]]>
   </update>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM