Запускается некое приложение. Конектится к базе. Создаются таблицы(если не созданы ранее) и доходит очередь до создание индекса, но он мог уже быть создан ранее и из-за этого я получу исключение Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Duplicate key name 'tablename_index' (Java). Как наиболее просто и правильно проверить, существует ли индекс и создать его, если он не был ранее создан.
Посоветовали тему(я её ранее читал до создания вопроса здесь).
Там есть следующие:
You could just query for the existence of the index by name. For example, before you run
CREATE INDEX index_name ON mytable(column);
You need to run
SELECT COUNT(1) IndexIsThere FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_schema=DATABASE() AND table_name='mytable' AND index_name='index_name';
Как объединить это в 1 запрос с обычным условием? Ибо создание таблиц в коде происходит через addBatch
private boolean deployTables() {
try {
this.connection = getConnection();
} catch (SQLException ex) {
this.nextReconnect = -1L;
Logging.severe("Error creating connection to database. (deploy tables)", ex);
}
try (Statement statement = connection.createStatement()) {
statement.addBatch(CREATE_TABLE_KITS_SETTINGS);
statement.addBatch(CREATE_TABLE_KITS_ITEMS);
statement.addBatch(CREATE_TABLE_KITS_LOG);
statement.addBatch(CREATE_TABLE_KITS_LOG_INDEX);
statement.executeBatch();
statement.close();
return true;
} catch (SQLException ex) {
Logging.severe("Error deploy tables tables in database.", ex);
return false;
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости