如何在不复制旧表的任何值的情况下从另一个表创建 SQL 表



如何在 Oracle 中像这样逐行迭代的情况下使用现有表结构创建表?提前谢谢。

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

如果您担心遍历表:

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

我已经读过这个了。希望它能给你一个详细的解释..

在这个客户端案例中,我们最终所做的是将"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

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

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

相关内容

最新更新