DB2 模式的默认表空间
default tablespace for schema in DB2
我们的模式有一些 DDL。这些 DDL 在给定的表空间中创建表和索引。类似于:
CREATE TABLE mySchema.myTable
(
someField1 CHAR(2) NOT NULL ,
someField2 VARCHAR(70) NOT NULL
)
IN MY_TBSPC
INDEX IN MY_TBSPC;
我们希望将此 DDL 重新用于 运行 一些使用 APACHE DERBY 的集成测试。问题是 DERBY 不接受这种语法。有什么方法可以为表和索引定义一种默认表空间,这样我们就可以删除这个 'IN TABLESPACE' 语句。
在 DB2 中没有定义 "default" table 空间的确定性方法(我假设我们在这里处理 DB2 for LUW)。如果 table 空间没有在 CREATE TABLE
语句中明确指出,数据库管理器将为 table 数据选择带有 suitable 页的第一个 table 空间您有权使用的大小,索引将存储在与数据相同的table空间中。
这意味着如果您只有一个用户 tablespace 它将始终用于数据和索引,因此在某种程度上它成为默认设置。但是,如果您有多个具有不同页面大小的 table 空间,您最终可能会在不同的 table 空间中得到 table(及其索引)。
我们的模式有一些 DDL。这些 DDL 在给定的表空间中创建表和索引。类似于:
CREATE TABLE mySchema.myTable
(
someField1 CHAR(2) NOT NULL ,
someField2 VARCHAR(70) NOT NULL
)
IN MY_TBSPC
INDEX IN MY_TBSPC;
我们希望将此 DDL 重新用于 运行 一些使用 APACHE DERBY 的集成测试。问题是 DERBY 不接受这种语法。有什么方法可以为表和索引定义一种默认表空间,这样我们就可以删除这个 'IN TABLESPACE' 语句。
在 DB2 中没有定义 "default" table 空间的确定性方法(我假设我们在这里处理 DB2 for LUW)。如果 table 空间没有在 CREATE TABLE
语句中明确指出,数据库管理器将为 table 数据选择带有 suitable 页的第一个 table 空间您有权使用的大小,索引将存储在与数据相同的table空间中。
这意味着如果您只有一个用户 tablespace 它将始终用于数据和索引,因此在某种程度上它成为默认设置。但是,如果您有多个具有不同页面大小的 table 空间,您最终可能会在不同的 table 空间中得到 table(及其索引)。