PostgreSQL 判断物理删除表是否成功

PostgreSQL 判断物理删除表是否成功
  • 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 可根据实际情况作出改变


Mr.superbeyone