HSQLDB相当于“Use <databasename>;”</databasename>

时间:2015-03-22 09:12:46

标签: jdbc database-schema hsqldb

我想知道如何告诉HSQLDB使用哪个数据库。以MySQL为例,我输入:

  use testbd;

Toe只能使用&#34; testdb&#34;。

中的表格

使用&#34; HSQL Database Manager&#34;启动HSQLDB会话时显示所有模式(数据库)。然后,您可以选择数据库以使用&#39;。

如何指定数据库Testdb,以便我的查询看起来像:

  SELECT * FROM NAMES;

而不是啰嗦:

  SELECT * FROM TESTDB.NAMES;

命令?还有一种不同的方法可以通过JDBC,ODBC或Java以编程方式进行编程吗?

1 个答案:

答案 0 :(得分:1)

数据库被选为JDBC URL的一部分。如果不创建新连接,则无法在运行时更改它。

但无论如何你正在混淆术语

SELECT * FROM TESTDB.NAMES 

从&#34;数据库&#34;中选择名为testdb 而不是架构。 (MySQL没有区分数据库和架构,这也可能是你混淆术语的原因)

SQL标准定义了两个命名空间级别:目录和架构。

完全限定名称为database_name.schema_name.object_name。您只能从头开始省略部件。因此foo.bar引用架构bar中的表foo。由于HSQLDB不支持每个数据库有多个目录(或实际上:当前数据库 &#34;目录&#34;),因此在引用表时始终可以省略目录名称。 / p>

有关详细信息,请参阅手册:
http://hsqldb.org/doc/2.0/guide/databaseobjects-chapt.html#dbc_names_references

为避免必须指定表的架构,您可以使用set schema语句更改当前架构:

SET SCHEMA testdb;

手册中也记录了这一点:
http://hsqldb.org/doc/2.0/guide/sessions-chapt.html#N10BBF