我想,如果它存在,重命名蜂房表,如果它不不会产生错误。
我需要这样的东西
ALTER TABLE IF EXISTS T1重命名为T2:
但是这并不能运行(“不能识别输入附近的‘如果’‘存在于ALTER TABLE语句’‘重命名’”),也不做,我已经试过了变化。 这不包括在文档( https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RenameTable ),也许是因为这是不可能的。
有谁知道如何做到这一点,或替代方法(例如try / catch语句,如果它在蜂巢存在)?
我在蜂巢1.2。
如果不存在条款不蜂巢CLI工作,截至目前。 您可以编写程序类似下面的条件检查。
公共类HiveAlterRenameTo {私人静态字符串DRIVERNAME = “org.apache.hadoop.hive.jdbc.HiveDriver”;
公共静态无效的主要(字串[] args)抛出的SQLException {
// Register driver and create driver instance
Class.forName(driverName);
// get connection
Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/userdb", "", "");
// create statement
Statement stmt = con.createStatement();
// execute statement
Resultset res = stmt.executeQuery("SELECT count(*) FROM <Table_name> ;");
if (res > 0) {
// execute statement
stmt.executeQuery("ALTER TABLE employee RENAME TO emp;");
System.out.println("Table Renamed Successfully");
}
else {
System.out.println("Table Not exist");
}
con.close();
}