我正在尝试从配置单元表中删除分区。 为此,我想出了以下代码。
try {
// make the connection
Class.forName(driver)
connection = DriverManager.getConnection(url, username, password)
} catch {
case cnf:ClassNotFoundException =>
println("Invalid driver used. Class not found")
cnf.printStackTrace()
case e:Exception => e.printStackTrace
}
connection.close()
}
def dne(connection: Connection): Unit = {
try {
// Drop & Exchange the partition
val statement = connection.createStatement()
val drop = statement.executeUpdate(s"alter table db.tablename drop partition(continent='ASIA')")
} catch {
case se: SQLException => println("SQL exception. Exchange partition failed")
se.printStackTrace()
case e: Exception => e.printStackTrace()
}
}
我试图检查SQL drop语句产生的值,并基于该值,将成功删除和失败的分区名称存储在两个单独的集合中。 如果它是“ select”语句,我知道我们可以使用结果集来确定它是否为空。 我无法理解如何检查Drop语句的结果 在这种情况下我该怎么办?
答案 0 :(得分:0)
发出命令后,您可以检查要删除的分区是否仍然存在:
SELECT * FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_SCHEMA = 'your_schema' AND TABLE_NAME ='your_table'
AND PARTITION_NAME ='your_partition';
请参阅用户手册以获取更多信息:
https://dev.mysql.com/doc/refman/5.7/en/partitions-table.html