Status wykonania

0

Witam,

Mam pewny problem, z wykonaniem sprawdzenia do bazy czy istnieje dana tabela, jeśli nie istnieje to muszę ją założyć, w moim przypadku chodzi o HSQL.

Pozdrawiam.

0

HSQL chyba nie wspiera konstrukci 'IF [NOT] EXISTS'. Możesz tworzyć tabelę za każdym razem i łapać wyjątek, kiedy to się nie powiedzie(czyli tabela już była)

0

Jeżeli masz połączenie z bazą danych w postaci connection to:

connection.getMetaData().getTables(null, null, "nazwa", null);

Powinno wystarczyć. Zwrócony wynik to zwyczajny resultset.

0

A HSQL nie obsługuje CREATE TABLE IF NOT EXISTS ?

0

Dzięki za pomoc zabrakło mi getTables() ;-)

Z tego co czytałem CREATE TABLE IF NOT EXISTS nie jest obsługiwany w HSQL.

Rozwiązałem ten problem w następujący sposób, gdy tabela jest zwraca true kiedy nie ma false.

public static boolean tableExist( final String tableName ){
        Boolean result = false;
        Connection conn;

        try {
            conn = new ConnectHSQL().getConnection();

            if(conn != null)
            {
                ResultSet tables = conn.getMetaData().getTables(null,null,tableName.toUpperCase(),null);
                while(tables.next())
                {
                    String currentTableName = tables.getString("TABLE_NAME");

                    if(currentTableName.equalsIgnoreCase(tableName))
                    {

                        result = true;
                        break;
                    }
                }
                tables.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return result;
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1