SQL 复制表定义

SQL 复制表定义,你想创建一个新表,该表和当前已存在的表保持相同的结构定义。例如,你希望为 DEPT 表创建一个副本,命名为 DEPT_2。但是,你只想复制它的表结构,而不复制数据。

SQL 复制表定义 问题描述

你想创建一个新表,该表和当前已存在的表保持相同的结构定义。例如,你希望为 DEPT 表创建一个副本,命名为 DEPT_2。但是,你只想复制它的表结构,而不复制数据。

SQL 复制表定义 解决方案

DB2
使用 CREATE TABLE 语句和 LIKE 子句。

create table dept_2 like dept

Oracle、MySQLPostgreSQL
使用 CREATE TABLE 语句和一个不返回任何数据的子查询。

1 create table dept_2
2 as
3 select *
4   from dept
5  where 1 = 0

SQL Server
使用 SELECT 语句和 INTO 子句,但要保证该查询不返回任何数据。

1 select *
2   into dept_2
3   from dept
4  where 1 = 0

SQL 复制表定义 扩展知识

DB2
DB2 的 CREATE TABLE...LIKE 语句能以现有的表为模板快速创建一个新表。只要把模板表的名字放在 LIKE 关键字的后面即可。
Oracle、MySQLPostgreSQL
使用 Create Table As Select ( 简写为 CTAS) 语句时,除非为 WHERE 子句指定一个不可能为真的条件,否则,查询结果集将会被写入新表。本例中,WHERE 子句后面的表达式 1=0 会导致查询不返回任何结果。因此,上述 CTAS 语句的执行结果就是一张空表,该表的列取决于 SELECT 子句的查询结果。
SQL Server
使用 INTO 子句复制表定义时,除非为 WHERE 子句指定一个不可能为真的条件,否则的话查询结果集将会被写入新表。本例中,WHERE 子句后面的表达式 1=0 会导致查询不返回任何结果。上述语句的执行结果是一张空表,该表的列取决于 SELECT 子句的查询结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程