如何在DB2中使用AS创建表并指定表空间?
DB2中使用AS子句创建表时指定表空间的问题
在DB2里,使用CREATE TABLE...AS (SELECT...)语法时,无法直接通过IN子句指定表空间,这就是你执行语句报错的原因,该语法不支持这个写法。
你可以通过以下两种方式实现需求:
方法一:用
LIKE子句创建同结构空表并指定表空间
如果只需要复制源表的结构、约束等属性,可直接用LIKE语法,它支持指定表空间:db2 "CREATE TABLE schema.table LIKE schema.tmp IN TABSPACE01"该语句默认创建空表,效果和
WITH NO DATA一致。方法二:先创建表再移动到目标表空间
如果需要通过AS SELECT来定义表结构(比如包含投影列、计算列等LIKE无法覆盖的场景),可以先创建表,再通过ALTER TABLE移动表空间:-- 先创建表 db2 "CREATE TABLE schema.table AS (SELECT * FROM schema.tmp) WITH NO DATA" -- 移动到目标表空间 db2 "ALTER TABLE schema.table MOVE TO TABSPACE01"
内容的提问来源于stack exchange,提问作者veroneseComS
相关产品推荐
相关产品推荐

