oracle - 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
有一些技巧可以做到这一点,或者根本不可能在不指定所有列的情况下创建副本?
解决方案
尝试如下
CREATE TABLE IOT_TABLE2(id, col1, col2 .... , CONSTRAINT pk PRIMARY KEY (id))
ORGANIZATION INDEX AS SELECT * FROM IOT_TABLE1;
db<>在这里摆弄
推荐阅读
- c# - ASP.Net 根据 EF 模型返回的值选择下拉选项(在视图中)
- kotlin - Apache Beam 不支持 Kotlin Iterable?
- assembly - 将偏移量从屏幕复制到字符串 asm 8086
- python - 如何在数据透视表中单独列出列表的组件?
- pandas - 使用 pandas 和 yahoo Finance 将数据保存到 csv 文件
- git - 如果 PR 已经合并到不同的分支,有没有办法再次创建 PR 到其他分支?
- java - MySQL选择从今年到去年特定月份的所有行
- uml - 为什么它在条件下使用“ ErrCounter >= limt ”?
- image - 尽管从资产中提供了彩色图像,但 SVG 图片在颤动中返回黑色图像
- c++ - 在模板函数内的 lambda 内不会丢弃“if constexpr 分支”