Frickelblog

24. November 2009

Derby 10.5 mit Fetch/Offset

Filed under: Java — frickelblog @ 10:10
Tags: , ,

Gerade gesehen, dass es in Derby 10.5 auch ein Limit-Äquivalent geben soll (mehr dazu hier).

Im Beispiel:

ij> SELECT NAME, SCORE FROM RESULTS ORDER BY SCORE DESC
> FETCH FIRST 3 ROWS ONLY;
NAME      |SCORE
----------------------
John      |33
Anne      |28
Sue       |21

Ein “richtiges” Limit wird es nicht geben, da es (noch?) nicht Teil des SQL-Standards ist.

Siehe auch SQL:2008.

27. May 2009

Create Table IF NOT EXISTS … in JavaDB/Derby

Filed under: Java — frickelblog @ 21:06
Tags: , , ,

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)”);
}

Theme: Customized Rubric. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: