“ALTER TABLE IF EXISTS T1重命名为T2”在HiveQL?(“ALTER TA

2019-09-30 12:23发布

我想,如果它存在,重命名蜂房表,如果它不不会产生错误。

我需要这样的东西

ALTER TABLE IF EXISTS T1重命名为T2:

但是这并不能运行(“不能识别输入附近的‘如果’‘存在于ALTER TABLE语句’‘重命名’”),也不做,我已经试过了变化。 这不包括在文档( https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-RenameTable ),也许是因为这是不可能的。

有谁知道如何做到这一点,或替代方法(例如try / catch语句,如果它在蜂巢存在)?

我在蜂巢1.2。

Answer 1:

如果不存在条款不蜂巢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();

}



文章来源: “ALTER TABLE IF EXISTS t1 RENAME TO t2” in HiveQL?
标签: hadoop hive