# Prüfen ob Tabelle existiert?



## rafxx (15. Jul 2008)

Hallo erstmal...

wollte mal fragen wie ich in Java prüfen kann ob eine Tabelle in einer bestehenden HSQLDB schon angelegt wurde...kann auch direkt beim anlegen passieren....

und evtl ob man eine ganze spalte auf den höchsten wert überprüfen kann der in ir steht (für INTEGER)...


Danke schon mal für die Mühen

Gruß Raphael


----------



## Guest (16. Jul 2008)

Es gibt zwei Wege festzustellen ob eine Table existiert.

1. Metadaten befragen

http://forum.java.sun.com/thread.jspa?messageID=2210013


2. Tabelle abfragen und SQL Excetion abfangen.


----------



## Guest (17. Jul 2008)

Für manche DBs gibt es auch spezielle SQL Statements. Im Beispiel der H2 Datenbank (www.h2database.com):

```
DROP TABLE IF EXISTS [i]<tabname>[/i]
```

Gruß


----------



## rafxx (18. Jul 2008)

OK danke, sehr cool mal schauen was ich draus machen kann....


----------



## setsuna9 (21. Jul 2008)

folgenden Code benutze ich (habe ich irgendwo mal gefunden):


```
final public boolean tableExists(final Connection conn,
			final String tableName) throws SQLException {

		PreparedStatement stmt = null;
		ResultSet results = null;
		try {
			stmt = conn.prepareStatement("SELECT COUNT(*) FROM " + tableName
					+ " WHERE 1 = 2");
			results = stmt.executeQuery();
			return true; // if table does exist, no rows will ever be returned
		} catch (SQLException e) {
			return false; // if table does not exist, an exception will be thrown
		} finally {
			if (results != null) {
				results.close();
			}
			if (stmt != null) {
				stmt.close();
			}
		}
	}
```


----------

