当前位置: 首页 > news >正文

oracle 快速创建表结构

在 Oracle 中快速创建表结构(仅复制表结构,不复制数据)可以通过以下方法实现,适用于需要快速复制表定义或生成空表的场景

1. 使用 CREATE TABLE AS SELECT (CTAS) 方法

-- 复制源表的全部列和数据类型,但不复制数据
CREATE TABLE new_table AS SELECT * FROM source_table WHERE 1=0;

-- 示例:从 employees 表复制结构
CREATE TABLE employees_copy AS SELECT * FROM employees WHERE 1=0;

  • 仅复制列名、数据类型和 NOT NULL 约束。

  • 不会复制主键、外键、索引、默认值、注释等元数据。

  • 适用于快速生成临时表或测试表。

 2. 使用 DBMS_METADATA 生成 DDL

 通过 Oracle 内置包 DBMS_METADATA 获取表的完整 DDL 语句,手动修改表名后执行:

获取源表的 DDL: 

-- 设置输出格式
SET LONG 1000000
SET PAGESIZE 0

-- 获取表结构的 DDL
SELECT DBMS_METADATA.GET_DDL('TABLE', 'SOURCE_TABLE') FROM DUAL;

修改表名并执行

将生成的 DDL 语句中的 SOURCE_TABLE 替换为新表名,

CREATE TABLE new_table (
    id NUMBER PRIMARY KEY,
    name VARCHAR2(50) NOT NULL,
    ...
);

  • 完整复制表结构(包括约束、索引、注释等)。

  • 需要手动修改表名和其他参数(如表空间)。

3. 使用 SELECT * FROM 结合 UNION ALL

 -- 示例:快速定义与 employees 结构相同的空表
CREATE TABLE employees_empty AS
SELECT 
    NULL AS employee_id,  -- 数据类型自动继承
    NULL AS first_name,
    NULL AS last_name,
    NULL AS hire_date,
    NULL AS salary,
    NULL AS department_id
FROM DUAL 
WHERE 1=0;

http://www.dtcms.com/a/117509.html

相关文章:

  • C语言基础20
  • 基于SpringBoot的“智慧医疗采购系统”的设计与实现(源码+数据库+文档+PPT)
  • 【题解】AtCoder AT_abc400_c 2^a b^2
  • d202547
  • AF3 OpenFoldMultimerDataModule类解读
  • 【零基础入门unity游戏开发——动画篇】Animation动画窗口,创建编辑动画
  • uniapp微信小程序地图marker自定义气泡 customCallout偶尔显示不全解决办法
  • 本地大模型构建个人知识库(Ragflow)
  • Oracle序列介绍
  • Web开发:常用 HTML 表单标签介绍
  • 数据类型与判断
  • 【后端开发面试题】每日 3 题(三十)
  • CentralCache
  • 登录窗口布局
  • 具身智能零碎知识点(一):深入解析Transformer位置编码
  • oracle 包的管理
  • ffmpeg提取字幕
  • 八大排序——c++版
  • 如何使用 Coze 的 HTTP 请求节点实现高效数据交互
  • 《深度揭秘:借助MySQL实现AI模型训练全程追溯》
  • 数据驱动金融韧性升级,开启数据交换“新范式”:构建“实时、国产化强适配”的数据交换与共享平台
  • java基础使用- 泛型
  • 《DeepSeek RAG 增强检索知识库系统》Ollama DeepSeek 流式应答页面对接之三
  • Postgres数据库源码编译及部署
  • 【11408学习记录】英语语法核心突破:揭秘表语从句结构与通知写作实战技巧
  • 数据结构与算法:基础与进阶
  • 5分钟上手GitHub Copilot:AI编程助手实战指南
  • 【大模型】DeepSeek+蓝耕MaaS平台+海螺AI生成高质量视频实战详解
  • TDengine JAVA 语言连接器
  • Ai云防护技术解析——服务器数据安全的智能防御体系