首页 > 解决方案 > Oracle:是否可以在不指定列的情况下使用 CTAS 创建 IOT 的副本?

问题描述

我使用 CTAS(将表创建为选择)语法以这种方式创建表的副本:

CREATE TABLE TABLE2 AS SELECT * FROM TABLE1;

所以 TABLE2 是 TABLE1 的完整副本,包括它的所有列。

我想用 IOT 表做同样的事情。

但是,如果我尝试执行以下操作:

CREATE TABLE IOT_TABLE2 ORGANIZATION INDEX AS SELECT * FROM IOT_TABLE1;

我得到:

ORA-25175: no PRIMARY KEY constraint found

有一些技巧可以做到这一点,或者根本不可能在不指定所有列的情况下创建副本?

标签: oracleoracle12c

解决方案


尝试如下

CREATE TABLE IOT_TABLE2(id, col1, col2 .... , CONSTRAINT pk PRIMARY KEY (id)) 
ORGANIZATION INDEX AS SELECT * FROM IOT_TABLE1;

db<>在这里摆弄


推荐阅读