2009-02-26 16 views
32

Zwykle używam SQLDeveloper do przeglądania bazy danych, ale nie mogę sprawić, żeby działała z hsqldb i nie wiem, które tabele są już utworzone ... Domyślam się, że jest to specyficzne dla dostawcy pytanie, a nie zwykły sql, ale chodzi o to: jak mogę zobaczyć tabele, aby je upuścić/zmienić?Jak wyświetlić wszystkie tabele w bazie danych HSQLDB?

+0

Jakiej bazy danych używasz. Odpowiedź zależy bardzo. –

+1

Przepraszamy, dodałem tag, ale zapomniałem wspomnieć, że używam Hsqldb – nobody

+1

Szczerze mówiąc, tytuł powiedział mi, czym jest BDMS. – will

Odpowiedz

40

Standard ANSI SQL92 dla zapytania do metadanych bazy danych jest zawarty w strukturach danych INFORMATION_SCHEMA.

nie mam pojęcia, czy baza danych obsługuje to lub nie, ale spróbuj wykonać następujące czynności

SELECT * 
FROM INFORMATION_SCHEMA.TABLES 

sprawie dalszych badań wydaje się, że hsqldb obsługuje information_schema ale z nieco niestandardowym nazewnictwa.

Wszystkie tabele mają SYSTEM_ poprzedzany do nich więc powyższy przykład będzie czytać

SELECT * 
FROM INFORMATION_SCHEMA.SYSTEM_TABLES 

nie mam możliwości przetestowania to i odpowiedź została znaleziona na sourceforge

+2

Wygląda na to, że Hsqldb tego nie obsługuje, ale dziękuję. – nobody

+1

Po prostu potrzebuję dodać miejsce, w którym TABLE_TYPE = "TABLE", a otrzymałem ... dziękuję za pomoc! A dobra wiadomość, zgodnie z opublikowanym linkiem jest taka, że ​​w przypadku nowych wersji będą one zgodne ze standardem. Dzięki jeszcze raz. – nobody

+0

Nie znaleziono tabeli: TABLES w instrukcji [SELECT * FROM INFORMATION_SCHEMA.TABLES] – cherouvim

12

Niesamowite, dzięki! Przeszukałem internet w poszukiwaniu tych informacji. To będzie pobrać tylko informacje pola tabel:

SELECT TABLE_NAME, COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, DECIMAL_DIGITS, IS_NULLABLE FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE TABLE_NAME NOT LIKE 'SYSTEM_%' 

można pobrać indeksy, klucz podstawowy informacji, wszystkie kindza rzeczy z INFORMATION_SCHEMA.SYSTEM_TABLES. Uwielbiam dokumentację: p

+0

Brak tabeli w HSQLDB po wykonaniu za pomocą SELECT ... FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS GDZIE TABLE_NAME NIE LIKA "SYSTEM_%" w jdbc: hsqldb: mem: jak połączenie URL. Więc format połączenia nie jest dla zapytania, ale może połączyć się z powrotem, prawda? – parsifal

+0

Ta kwerenda działa doskonale, uratowała mnie trochę czasu. Używam HSQL 2.3.2 – cbaldan

0

Uruchamiasz zapytania za pomocą hsql database manager, co? jeśli używasz tego poniżej może dać pewne wskazówki:

wybrać połączenie

  1. typ: HSQL DATABASE ENGINE SERVER
  2. Kierowca: jdbc.hsqldb.jdbcDriver
  3. URL: jdbc:hsqldb:hsql://localhost/

wtedy będzie szukać baza danych.

3

Jeśli w wierszu poleceń, może chcesz spróbować hsqldb SqlTool, udokumentowaną w http://hsqldb.org/doc/2.0/util-guide/sqltool-chapt.html

  • umieścić informacje o połączeniu z bazą danych w „~/sqltool.rc” i wybrać dowolny DBNAME chcesz , zamień poprawną nazwę użytkownika i hasło, jeśli są znane.
    • urlid DBNAME
    • url jdbc: hsqldb:/ścieżka/do/HSQL/database
    • nazwa sa
    • hasło
  • zainstalować narzędzie z: apt-get install hsqldb-utils (na Ubuntu)
  • Connect with: hsqldb-sqltool DBNAME # na Ubuntu
  • wskazówka dla innych systemów: java -jar YourHsqlJar.jar DBNAME
  • Wyświetl tabele z: \ dt
  • Pokaż kolumny za pomocą: \ d TABLENAME
  • Standardowe zapytania takie jak: SELECT * FROM ...;
  • Edit (dołącz) ostatnie polecenie z:: a
  • Przerwac: \ q
  • Zobacz specjalnych poleceń z: \? LUB:?

Powodzenia!

1

Użyj polecenia "\ dt" po naciśnięciu znaku zachęty "> sql" w wierszu poleceń dla HSQLDB.

Powiązane problemy