Я пытаюсь создать таблицу с помощью JavaDB (Derby), но если я попытаюсь добавить ЕСЛИ НЕ СУЩЕСТВУЕТ:
CREATE TABLE IF NOT EXISTS etc (ID BIGINT PRIMARY KEY, title VARCHAR(150))
Я получаю сообщение об ошибке:
java.sql.SQLSyntaxErrorException: Синтаксическая ошибка: обнаружено «НЕ» в строке 1, столбце 17.
Насколько я помню, он работает на MySQL. Каков синтаксис/самый простой способ проверить, существует ли таблица?
ИЗМЕНИТЬ:
Наконец я нашел решение:
DatabaseMetaData dbmd = conn.getMetaData();
ResultSet rs = dbmd.getTables(null, "APP", "ETC", null);
if (rs.next()) {
System.out.println("Table " + rs.getString(3) + " exists");
}
Я заметил, что имя таблицы чувствительно к регистру, если оно создается с использованием кавычек «и т. д.», а если нет - имя должно быть в верхнем регистре. Согласно документации API: «должно совпадать с именем таблицы, так как оно хранится в базе данных».