У меня есть метод с именем dropTable
, который отправляет запрос SQL в базу данных, чтобы проверить, существует ли таблица или нет. Если это так, он падает на стол. Я отправляю другой запрос, сообщающий ему о создании таблицы.
Когда я запускаю код, я получаю сообщение об ошибке:
ОШИБКА: синтаксическая ошибка в или около "IF" Позиция: 1 `, который указывает на строку с первым методом execute.
У меня есть операторы print, чтобы увидеть, куда код достигает, и он никогда не достигает прошлого метода execute.
public static void dropTable(Connection conn, String name, String description) {
Statement st = null;
try {
st = conn.createStatement();
System.out.println("hello");
st.execute("IF EXISTS (SELECT * FROM sys.tables WHERE NAME = '" + name + "' AND TYPE = 'U') DROP TABLE " + name);
System.out.println("done");
st.execute("CREATE TABLE " + description);
} catch (SQLException e) {
e.printStackTrace();
}
}
Что-то не так делаю?