【问题标题】:How to see all the tables in an HSQLDB database?如何查看 HSQLDB 数据库中的所有表?
【发布时间】:2010-10-10 03:25:50
【问题描述】:

我通常使用 SQLDeveloper 浏览数据库,但是我无法使其与 HSQLDB 一起使用,并且我不知道已经创建了哪些表...... 我想这是一个特定于供应商的问题,而不是简单的 SQL,但重点是:如何查看表以便删除/更改它们?

【问题讨论】:

  • 您使用的是什么数据库。答案在很大程度上取决于。
  • 对不起,我添加了一个标签但我忘了提到我正在使用 Hsqldb
  • 老实说,标题告诉我BDMS是什么。

标签: sql hsqldb


【解决方案1】:

用于查询数据库元数据的 ANSI SQL92 标准包含在 INFORMATION_SCHEMA 数据结构中。

我不知道您的数据库是否支持此功能,但请尝试以下操作:

SELECT *
FROM   INFORMATION_SCHEMA.TABLES

经过进一步研究,HSQLDB 似乎确实支持INFORMATION_SCHEMA,但命名略有不标准。

所有的表都在前面加上SYSTEM_*,所以上面的例子会这样写

SELECT *
FROM   INFORMATION_SCHEMA.SYSTEM_TABLES

我没有办法测试这个,答案在sourceforge找到。

【讨论】:

  • 所以我只需要添加 where TABLE_TYPE = 'TABLE' 就可以了...感谢您的帮助!好消息是,根据您发布的链接,对于新版本,它们将遵循标准。再次感谢。
  • 找不到表:语句 [SELECT * FROM INFORMATION_SCHEMA.TABLES] 中的表
  • HSQLDB 2.x 支持答案中给出的两种形式的 SELECT。
  • 查询语法是否可以在 HSQL 数据库管理器中执行?我在其中输入查询语法,但正如 cherouvim 所引用的,找不到表:...错误代码 -22/状态:s0002。
  • 从 INFORMATION_SCHEMA.SYSTEM_TABLES 中选择 *;使用 subsonic.org 数据库的副本为我工作。要仅获取用户表,请添加 where 子句:SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES WHERE TABLE_TYPE='TABLE';
【解决方案2】:

太棒了,谢谢!一直在网上搜索该信息。 这将只获取您的表的字段信息:

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

您可以从INFORMATION_SCHEMA.SYSTEM_TABLES 检索索引、主键信息和各种东西。 一定要喜欢 oo 文档:p

【讨论】:

  • 使用 SELECT ... FROM INFORMATION_SCHEMA.SYSTEM_COLUMNS WHERE TABLE_NAME NOT LIKE 'SYSTEM_%' in jdbc:hsqldb:mem: 作为 URL 连接执行后,HSQLDB 中没有表。所以它的连接格式不是用来查询的,但它可以在后端连接,对吧?
  • 该查询完美运行,为我节省了一些时间。我正在使用 HSQL 2.3.2
【解决方案3】:

如果您在命令行上,您可能想尝试使用 SqlTool Manual (hsqldb.org) 中记录的 Hsqldb SqlTool。

  • 将您的数据库连接信息放入“~/sqltool.rc”并选择您想要的任何 DBNAME,替换正确的用户名和密码(如果知道)。
    • urlid DBNAME
    • url jdbc:hsqldb:/path/to/hsql/database
    • 用户名 SA
    • 密码
  • 安装工具:apt-get install hsqldb-utils(在 Ubuntu 上)
  • 在 Ubuntu 上与 hsqldb-sqltool DBNAME # 连接
  • 其他系统的提示:java -jar YourHsqlJar.jar DBNAME
  • 显示表格:\dt
  • 显示列包含:\d TABLENAME
  • 标准查询如:SELECT * FROM …;
  • 编辑(附加)最后一条命令::a
  • 退出:\q
  • 查看特殊命令:\? OR :?

祝你好运!

【讨论】:

    【解决方案4】:

    在 HSQLDB 的命令行中点击 >sql 提示符时使用 \dt 命令。

    【讨论】:

      【解决方案5】:

      查看DBVisualiserSQuirreL SQL Client。这两者都支持 HSQLDB,以及用于编辑/修改/查看表的 GUI。

      【讨论】:

        【解决方案6】:

        您使用hsql database manager 运行查询,是吗? 如果你使用这个,下面可能会给出一些提示:

        选择您的连接:

        1. 类型:HSQL DATABASE ENGINE SERVER
        2. 司机:jdbc.hsqldb.jdbcDriver
        3. 网址:jdbc:hsqldb:hsql://localhost/

        然后,您将浏览数据库。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-07
          • 2011-10-27
          • 2016-10-02
          • 2014-06-17
          • 1970-01-01
          • 1970-01-01
          • 2023-03-24
          • 1970-01-01
          相关资源
          最近更新 更多