【问题标题】:What is the meaning of 1=2 when copying database structure?复制数据库结构时1=2是什么意思?
【发布时间】:2015-08-21 07:24:30
【问题描述】:

我遇到过

create table new_table as select * from old_table where 1=2;

where 1=2 条件的含义是什么,它执行什么功能?

【问题讨论】:

  • 这是一个错字。应该是1=0 ;) (根据查询创建表只是一个“黑客”,确保您获得正确的数据类型,但保证您在新表中没有任何行。)

标签: sql oracle ddl create-table


【解决方案1】:

1=2 总是评估为假。这是利用 create as select 复制表结构而不复制其任何行的常见技巧(因为它们都不会通过1=2 的测试)。

【讨论】:

    【解决方案2】:

    它只会复制table 的结构,而不是table 中的data1=0 or 1=2 将始终在 where 子句中返回 false,因此 select query 不会从表中返回任何 rows,这只是在 schema 中创建 table 就像另一个 table 一样的技巧。

    【讨论】:

    • 1=0 无限优越 :)
    【解决方案3】:

    1=2 本质上会导致在创建新表时没有选择旧表中的当前记录,因此您只使用旧表的结构来创建新表。

    【讨论】:

      【解决方案4】:

      WHERE 1=2 表示假条件 WHERE 不会从表中取出任何行,并且目标表将与源表相似,但数据除外

      【讨论】:

        猜你喜欢
        • 2016-08-18
        • 2014-04-08
        • 1970-01-01
        • 2022-12-16
        • 1970-01-01
        • 2012-04-26
        • 2016-12-10
        • 2014-12-01
        • 1970-01-01
        相关资源
        最近更新 更多