如何从另一个表创建SQL表而不从旧表复制任何值

时间:2013-12-21 17:38:07

标签: sql oracle

如何创建具有现有表结构的表而不像Oracle中那样逐行迭代?先谢谢。

CREATE TABLE new_table
  AS (SELECT *
      FROM old_table WHERE 1=2);

3 个答案:

答案 0 :(得分:3)

如果你担心迭代表:

CREATE TABLE new_table
  AS (SELECT *
      FROM (select * old_table where rownum = 1) t
      WHERE 1=2
     );

答案 1 :(得分:1)

我已经读过这篇文章..希望它给你一个详细的解释..

我们最终在这个客户端案例中做的是用一个将表的主键等同于该键的不可能值的子句替换“WHERE 1 = 2”,在这种情况下,ID是作为GUID(十六进制值)传入,因此我们使用“WHERE KEY = HEX(00)”并获得低成本的唯一索引查找,而不是昂贵的全表扫描。

http://www.dba-oracle.com/oracle_tips_ault_where_1_equals_2_parallel_.htm

感谢Burleson Consulting

答案 2 :(得分:0)

我不确定Oracle的语法,但在几乎任何SQL中,如果使用GUI工具打开另一个表,则可以选择为表生成创建脚本语句并在没有数据的情况下备份表。

其中任何一个都能满足您的需求。