java检查表中是否已经存在列
我需要验证表中是否已经存在列。我的类扩展了CustomTaskChange,因此我的方法接收一个数据库对象作为参数。我可以通过ResultsTobject进行我想要的验证吗
@Override
public void execute(Database database) throws CustomChangeException {
JdbcConnection connection = (JdbcConnection) database.getConnection();
DatabaseMetaData metadata;
metadata = connection.getMetaData();
String[] types = {"TABLE"};
ResultSet rs = metadata.getTables(null, null, "%", types);
Statement s = connection.createStatement();
while (rs.next()) {
String tableName = rs.getString(3);
if (tableName.endsWith(this.suffix)) {
String sql = sqlStatement.replaceAll("name", tableName);
s.execute(sql);
}
}
}
基本上,这段代码正在遍历数据库中的所有表。如果表名以后缀结尾,我将向其添加列。这样我可以同时向多个表添加一列。 但我想添加另一个验证,将该列添加到表中,即该表中不可能已经存在具有该名称的列。类似这样的东西(伪代码)
if(tableName.endsWith(this.suffis) && columnName doesn't exist in that table){
String sql = sqlStatement.replaceAll("name", tableName);
s.execute(sql);
}
# 1 楼答案
您可以从每个表中提取列,然后检查列是否存在