瀚高数据库如何克隆表

文章目录

环境

环境

系统平台:N/A

版本:4.5.10

文档用途

该文档用于克隆表

详细信息

方法一:CREATE TABLE AS ------ 克隆表结构和数据

sql 复制代码
CREATE TABLE 新表名 AS
SELECT * FROM 源表名
[WITH [NO] DATA]  -- 使用 WITH NO DATA 只复制结构
[WHERE 条件];     -- 可选,用于复制部分数据

优点:简单快捷。
缺点:不会复制原表的索引、约束(如主键、外键)和触发器等信息

示例:
1、完整复制表结构和所有数据(不含索引和约束)
CREATE TABLE b AS SELECT * FROM a;

2、只复制表结构,不复制数据(不含索引和约束)
CREATE TABLE b AS SELECT * FROM a with no data;

3、只复制满足条件的数据(不含索引和约束)
CREATE TABLE b AS SELECT * FROM a where id > 100;

方法二:SELECT INTO ------ 快速复制数据

sql 复制代码
SELECT *
INTO 新表名
FROM 源表名
[WHERE 条件];

与CREATE TABLE AS类似,它也不会复制索引、约束等属性

示例:
1、复制整个表
SELECT * INTO a FROM b;

2、复制部分数据
SELECT * INTO a FROM b WHERE id > 100;

方法三:CREATE TABLE ... LIKE ------ 克隆表结构

sql 复制代码
CREATE TABLE 新表名 (LIKE 源表名 [INCLUDING | EXCLUDING 选项 ...]);

常用选项:
INCLUDING ALL:复制所有可复制的属性,包括约束、索引、默认值、注释等。
INCLUDING CONSTRAINTS:复制约束(如NOT NULL、CHECK、主键、外键等)。
INCLUDING INDEXES:复制索引。
INCLUDING DEFAULTS:复制列的默认值。
INCLUDING COMMENTS:复制表和列的注释。

优点:可以精确控制复制哪些结构属性(如索引、约束),灵活性高。
缺点:需要执行两条SQL语句。

示例:
1.创建一个和源表结构完全一样的新表(包含所有约束和索引),但不含数据
CREATE TABLE b (LIKE a INCLUDING ALL);

2.复制数据
INSERT INTO b SELECT * FROM a;

选择建议

如果只需要数据和基础列结构,不在意索引、约束等,使用方法一(CREATE TABLE AS)或方法二(SELECT INTO)最方便。

如果需要完整复制表结构(包括索引、约束等)和数据,推荐使用方法三(CREATE TABLE ... LIKE 配合 INSERT INTO ... SELECT)

相关推荐
imDwAaY2 小时前
Redis 也能做消息队列?从 Stream 的存储讲到消费确认
数据库·redis·缓存
@Mike@2 小时前
13-数据库学习笔记(查询执行处理模型)
数据库·笔记·学习
弈栈录3 小时前
MySQL 事务、索引与锁:后端开发必须掌握的数据库基础
数据库·后端
9624563 小时前
餐饮 SaaS 优惠券系统架构演进(三):优惠计算引擎——商品级计价、冲突策略与优惠分摊
java·数据库·spring boot
染指11103 小时前
135.Agent-多Agent框架-LangChain多智能体(SubAgents子代理)
数据库·人工智能·设计模式·langchain·agent·agents
Elastic 中国社区官方博客3 小时前
错误最多的服务运行正常:使用 ES|QL 从日志进行根因分析
大数据·运维·数据库·sql·elasticsearch·搜索引擎·全文检索
做运维的阿瑞4 小时前
mysql数据库视图笔记:创建、修改、删除与适用场景
数据库·笔记·mysql
Seraphina364 小时前
DVWA(SQL Injection-High,XSS Reflected-Medium,XSS Stored-Medium)
数据库·经验分享·sql·网络安全·xss
@Mike@4 小时前
12-数据库学习笔记(五种连接算法)
数据库·笔记·学习
Omics Pro4 小时前
之江实验室NAR|虚拟细胞3阶段训练范式
数据库·人工智能·算法·机器学习·自然语言处理