Как проверить или проверить результат оператора DROP при его выполнении с использованием JDBC? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь удалить раздел из таблицы улья.Для этого я придумал следующий код:

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, и на основе этого значения сохранить имена разделов, которые были успешно удалены и неудачные.в двух отдельных коллекциях.Если это оператор «select», я знаю, что мы можем использовать результирующий набор, чтобы определить, является ли он пустым или нет.Я не могу понять, как я могу проверить результат оператора drop Что мне делать в этом случае?

1 Ответ

0 голосов
/ 08 июля 2019

Вы можете проверить, существует ли раздел, который вы хотите удалить, после того, как вы выполнили команду:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...