Postgre SQL 判斷物理刪除表是否成功

Postgre SQL 判斷物理刪除表是否成功

  • service
/**
  * 物理刪除表
  *
  * @param tableName 表名
  * @return 刪除結果 1 刪除成功 0 刪除失敗
  */
int dropTableByTableName(@Param("tableName") String tableName);
  • serviceImpl
/**
  * 物理刪除表
  *
  * @param tableName 表名
  * @return 刪除結果 1 刪除成功 0 刪除失敗
  */
 @Override
 public int dropTableByTableName(String tableName) {
     tableInfoMapper.dropTableByTableName(tableName);
     String name = tableInfoMapper.isTableExistInDB(tableName);
     if (StringUtils.isBlank(name)) {
         return 1;
     }
     return 0;
 }
  • mapper
/**
  * 物理刪除表
  *
  * @param tableName 表名
  * @return 刪除結果
  */
 void dropTableByTableName(@Param("tableName") String tableName);

/**
  * 判斷物理表是否存在
  * @param tableName 表名
  * @return 表名
  */
 String isTableExistInDB(@Param("tableName") String tableName);
<delete id="dropTableByTableName">
    drop table ${tableName}
</delete>

<select id="isTableExistInDB" resultType="java.lang.String">
    SELECT
        table_name 
    FROM
        information_schema.COLUMNS 
    WHERE
        table_schema = 'public' 
        AND TABLE_NAME = #{tableName} 
        LIMIT 1
</select>

isTableExistInDB sql 中 table_schema = ‘public’ 的 public 可根據實際情況作出改變

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章