2009-02-26 43 views
32

Tôi thường sử dụng SQLDeveloper để duyệt cơ sở dữ liệu, nhưng tôi không thể làm cho nó hoạt động với hsqldb và tôi không biết bảng nào đã được tạo ... Tôi đoán đó là câu hỏi của nhà cung cấp cụ thể và không phải là sql đơn giản, nhưng vấn đề là: làm thế nào tôi có thể thấy các bảng để tôi có thể thả/thay đổi chúng?Cách xem tất cả các bảng trong cơ sở dữ liệu HSQLDB?

+0

Bạn đang sử dụng cơ sở dữ liệu nào. Câu trả lời phụ thuộc rất nhiều. –

+1

Xin lỗi, tôi đã thêm một thẻ nhưng tôi quên đề cập đến việc tôi đang sử dụng Hsqldb – nobody

+1

Thành thật mà nói, tiêu đề đã cho tôi biết BDMS là gì. – will

Trả lời

40

Chuẩn ANSI SQL92 để truy vấn siêu dữ liệu của cơ sở dữ liệu được chứa trong cấu trúc dữ liệu INFORMATION_SCHEMA.

Tôi không có ý tưởng cho dù cơ sở dữ liệu của bạn hỗ trợ này hay không nhưng hãy thử như sau

SELECT * 
FROM INFORMATION_SCHEMA.TABLES 

Về nghiên cứu hơn nữa nó xuất hiện HSQLDB mà hỗ trợ INFORMATION_SCHEMA nhưng với cách đặt tên hơi phi tiêu chuẩn.

Tất cả các bảng có SYSTEM_ thêm vào phía trước họ để ví dụ trên sẽ đọc

SELECT * 
FROM INFORMATION_SCHEMA.SYSTEM_TABLES 

tôi không có phương tiện thử nghiệm này và câu trả lời được tìm thấy trên sourceforge

+2

Có vẻ như Hsqldb không hỗ trợ điều đó, nhưng cảm ơn bạn. – nobody

+1

Vì vậy, tôi chỉ cần thêm nơi TABLE_TYPE = 'TABLE' và tôi đã nhận nó ... cảm ơn sự giúp đỡ của bạn! Và tin tốt, theo liên kết bạn đăng là, đối với phiên bản mới, họ sẽ đi theo tiêu chuẩn. Cảm ơn một lần nữa. – nobody

+0

Không tìm thấy bảng: CÁC BẢNG trong câu lệnh [SELECT * FROM INFORMATION_SCHEMA.TABLES] – cherouvim

12

Tuyệt vời, cảm ơn! Đã xóa trang web để biết thông tin đó. này sẽ lấy thông tin chỉ lĩnh vực bảng của bạn:

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

Bạn có thể lấy chỉ số, thông tin khóa chính, tất cả những thứ kindza từ INFORMATION_SCHEMA.SYSTEM_TABLES. Tài liệu Gotta love oo: p

+0

không có bảng trong HSQLDB sau khi được thực hiện bằng cách sử dụng SELECT ... FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE TABLE_NAME KHÔNG THÍCH 'SYSTEM_%' trong jdbc: hsqldb: mem: là kết nối URL. Vì vậy, nó kết nối định dạng không phải là cho truy vấn, nhưng nó có thể kết nối ở phía sau, phải không? – parsifal

+0

Truy vấn đó hoạt động hoàn hảo, đã tiết kiệm thời gian cho tôi. Tôi đang sử dụng HSQL 2.3.2 – cbaldan

0

Bạn chạy truy vấn bằng cách sử dụng hsql database manager, đúng không? nếu bạn sử dụng này, dưới đây có thể đưa ra một số gợi ý:

chọn kết nối của bạn

  1. loại: HSQL DATABASE ENGINE SERVER
  2. Driver: jdbc.hsqldb.jdbcDriver
  3. URL: jdbc:hsqldb:hsql://localhost/

sau đó bạn sẽ duyệt kho dữ liệu.

3

Nếu bạn đang ở trên dòng lệnh, bạn có thể muốn thử HSQLDB SqlTool, ghi nhận tại http://hsqldb.org/doc/2.0/util-guide/sqltool-chapt.html

  • Đưa thông tin kết nối cơ sở dữ liệu của bạn trong "~/sqltool.rc" và chọn bất kỳ DBNAME bạn muốn , thay thế tên người dùng và mật khẩu chính xác nếu biết.
    • urlid DBNAME
    • url jdbc: HSQLDB:/path/to/HSQL/cơ sở dữ liệu
    • tên sa
    • mật khẩu
  • Cài đặt công cụ với: apt-get install HSQLDB-utils (trên Ubuntu)
  • Kết nối với: HSQLDB-sqltool DBNAME # trên Ubuntu
  • Gợi ý cho các hệ thống khác: java -jar YourHsqlJar.jar DBNAME
  • Hiển thị các bảng với: \ dt
  • Hiển thị các cột bằng: \ d TABLENAME
  • Truy vấn chuẩn như: SELECT * FROM ...;
  • Chỉnh sửa (nối thêm) lệnh cuối cùng với:: a
  • Thoát bằng: \ q
  • Xem các lệnh đặc biệt với: \? HOẶC LÀ :?

Chúc may mắn!

1

Sử dụng lệnh "\ dt" khi bạn nhấn dấu nhắc "> sql" trong dòng lệnh cho HSQLDB.

Các vấn đề liên quan