Oracle环境下的快速复制表结构数据指南_特定语法与可视化配置
CREATE TABLE AS SELECT 在 Oracle 里能复制结构和数据吗?
能,但默认只复制结构和数据,不复制主键、索引、约束、注释、默认值这些。很多人以为 CREATE TABLE new_tab AS SELECT * FROM old_tab 是“全量克隆”,结果一查 USER_CONSTRAINTS 就发现主键没了,外键断了,应用插入直接报错。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
- 这个语句本质是“基于查询结果建表”,Oracle 只保留列名、数据类型(按实际值推断)、NOT NULL(仅当原列定义为 NOT NULL 且 SELECT 中未用表达式覆盖时才保留)
- 如果原表有
NUMBER(10,2),但某行值全是整数,CTAS可能生成NUMBER(精度丢失) DATE列没问题,但TIMESTAMP WITH TIME ZONE可能被降级成TIMESTAMP,时区信息丢掉
如何让新表带上主键和索引?
不能靠 CTAS 一步到位,得拆成两步:先建空表(含约束),再 INSERT。Oracle 没有像 PostgreSQL 的 CREATE TABLE ... LIKE ... INCLUDING ALL,得手动或脚本补。
- 用
DBMS_METADATA.GET_DDL('TABLE', 'OLD_TAB')拿到完整 DDL,改表名后执行——这是最稳的方式,能带主键、唯一约束、注释 - 如果只要主键和索引,别动约束,可以单独导出:
SELECT DBMS_METADATA.GET_DDL('CONSTRAINT', constraint_name) FROM USER_CONSTRAINTS WHERE table_name = 'OLD_TAB' AND constraint_type = 'P' - 索引要单独建:
SELECT DBMS_METADATA.GET_DDL('INDEX', index_name) FROM USER_INDEXES WHERE table_name = 'OLD_TAB',注意索引名可能冲突,新建前最好重命名
用 Data Pump(expdp/impdp)复制表时,哪些参数决定是否带约束?
expdp 默认不导出约束和索引,impdp 默认也不创建它们,除非显式指定。最容易踩的坑是只加了 CONTENT=DATA_ONLY 却忘了关掉 EXCLUDE=CONSTRAINT,INDEX 的默认行为。
- 要完整复制(结构+数据+约束+索引),导出时至少加:
EXCLUDE=STATISTICS(避免统计信息干扰),导入时加:TABLE_EXISTS_ACTION=REPLACE和REMAP_TABLE=old:new - 如果只想复制结构(不含数据),用
CONTENT=METADATA_ONLY,但记得加上INCLUDE=TABLE,CONSTRAINT,INDEX,否则还是空壳 QUERY参数只影响数据导出,不影响 DDL;如果用了QUERY="WHERE 1=0",数据不导,但约束和索引照常建——这点常被误认为“没生效”
SQL Developer 里右键“Copy to Another Schema”为什么有时缺字段注释?
图形界面背后调用的是 DBMS_METADATA,但它默认不包含注释(COMMENT ON COLUMN 不属于表对象的主 DDL)。即使勾了“Include constraints”“Include indexes”,注释也得额外处理。
- 注释得单独导:
SELECT 'COMMENT ON COLUMN ' || table_name || '.' || column_name || ' IS ''' || comments || ''';' FROM USER_COL_COMMENTS WHERE table_name = 'OLD_TAB' - 如果目标库字符集不是 AL32UTF8,中文注释可能变乱码,导出前确认
NLS_LANG设置和数据库字符集一致 - SQL Developer 21.4+ 版本在“Advanced Copy Options”里新增了 “Include column comments”,但只对新版本有效,老版本用户容易漏掉这层
复制表看着简单,但 Oracle 里真正保质保量地把约束、索引、注释、默认值、虚拟列、分区定义都搬过去,靠单条命令根本做不到。得看清楚你要的是哪一层——只是临时测试用数据?那 CTAS 够用;要上线替换?必须走 DBMS_METADATA + 手动补注释 + 验证约束状态。
相关攻略
可移除外文输入法:一、系统设置中删除输入源;二、活动监视器终止相关进程;三、终端命令重置HIToolbox配置;四、删除 Library Input Methods 残留组件;五、清理~ Library Input Methods 用户数据。 你的Mac输入源列表里是不是也塞满了各种外文输入法?像A
怎么清理DNS缓存 修复网页打不开命令方法【教程】 有没有遇到过这种情况:想访问一个网站,浏览器却弹出一个冷冰冰的提示,告诉你“无法解析服务器的DNS地址”,或者页面干脆一片空白,转了半天圈圈也没反应?别急着怪网络,问题很可能出在你电脑的“本地通讯录”——DNS缓存上。当缓存里的域名解析记录出错、过
麒麟OS系统服务状态检查:五种核心方法详解 在麒麟OS中管理后台服务,systemctl无疑是那个最得力的“总开关”。无论是排查服务异常,还是确认开机自启配置,掌握下面这五种方法,基本上就能覆盖日常运维中绝大部分的状态检查需求。它们各有侧重,从快速验证到深度排查,形成了一个完整的工具箱。 一、使用
Mac上可显示文件扩展名的五种方法 在Mac上使用访达时,如果发现文件名末尾的扩展名(比如 pdf、 jpg)不见了,别担心,这通常是系统为了界面简洁而默认隐藏了它们。不过,识别文件后缀对于管理文件、判断文件类型至关重要。下面这五种方法,从一劳永逸的全局设置到灵活机动的临时查看,总有一款适合你。
直接看 proc $PID smaps 中的 Swap: 行可获进程真实已换出 swap 量(单位 KB),需对所有 Swap: 行求和;常用管道命令可快速列出占用 swap 前十的用户进程 直接看 proc $PID smaps 里的 Swap 行 从 Linux 内核 2 6 16 版本开始
热门专题
热门推荐
创意工坊也“宽”起来了:Steam最新界面改革进入测试 看来,Steam这股“加宽”的势头是停不下来了。继商店页面拓宽和首页开启宽屏测试之后,Valve这次把目光投向了玩家们再熟悉不过的创意工坊。最近,一项旨在让浏览体验“更迅速、更易用”的界面革新,已经正式启动了Beta测试。 根据官方消息,想要抢
《战争机器:事变日》重磅回归:一场回归纯粹恐怖的生存之旅 近日,游戏界传来重磅消息。据Playground Games官方透露,微软Xbox旗下的经典IP《战争机器》系列,即将推出一部风格彻底转型的新作——《战争机器:事变日》。本作的核心开发理念十分明确:摒弃近年来系列作品中常见的“超级英雄”式叙事
一、安币官网核心入口解析 接触一个平台,第一步走对至关重要。官方网站,就是那个最权威、最核心的入口。它不仅是获取信息的第一站,更是所有账户管理和交易操作的基石。通过官网访问,能有效避开那些精心伪装的仿冒网站,这是守护资产安全的第一道,也是最重要的一道防线。 那么,如何找到真正的官网?通过可靠的搜索引
iPhone开机只显示低电量图标后黑屏?别慌,这是“虚电”在作祟 遇到iPhone开机,屏幕只闪一下低电量图标就彻底黑屏,或者插上充电器半天都没反应?先别急着断定是主板坏了。这种情况,十有八九是电池老化导致的“虚电”现象在捣鬼——系统以为还有电,实际上电池的供电能力早已力不从心。下面这套从易到难的排
一、通过“显示与亮度”常规路径设置 这个方法最基础,也最稳妥。无论你的iPhone是什么系统版本,在“设置”里都能找到它。本质上,它就是直接调整系统判定屏幕“闲置”的那个时间阈值——一旦超过这个时长没有任何操作,屏幕就会自动熄灭。 操作起来很简单,就四步: 1 在主屏幕找到那个齿轮状的设置应用,点





