我们的架构有一些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'语句。
答案 0 :(得分:1)
没有确定的方法来定义"默认" DB2中的表空间(我假设我们在这里处理DB2 for LUW)。如果CREATE TABLE
语句中未明确指示表空间,则数据库管理器将为表数据选择具有您有权使用的合适页大小的第一个表空间,并且索引将与数据存储在同一表空间中
这意味着如果您只有一个用户表空间,它将始终用于数据和索引,因此在某种程度上它将成为默认值。但是,如果您有多个具有不同页面大小的表空间,则最终可能会在不同的表空间中使用表(及其索引)。