Create Table IF NOT EXISTS … in JavaDB/Derby

In MySQL gibt es das praktische Konstrukt “Create Table IF NOT EXISTS foo”.
Möchte man dieselbe Funktionalität in Apache Derby/JavaDB, wird oft empfohlen, ein
Select auf die entsprechende Tabelle durchzuführen und die entsprechende Exception
abzufangen (siehe z.B. hier). – Für ambitionierte Programmierer nur bedingt akzeptabel,
da Flußkontrolle durch Exceptions nur im Ausnahmefall eine schöne Lösung darstellt (siehe z.B. hier).

Eine schönere Lösung ist es, zu prüfen, ob die Tabelle (hier “Foo”) existiert, um dann ohne Exception
entsprechen reagieren zu können:

DatabaseMetaData dmd = conn.getMetaData();
ResultSet rs = dmd.getTables(null,”APP”, “FOO”,null);
if (!rs.next()) {
s.executeUpdate(“CREATE TABLE FOO (I INT)”);
}

One thought on “Create Table IF NOT EXISTS … in JavaDB/Derby”

Comments are closed.