复制数据库结构时1 = 2的含义是什么?

时间:2015-08-21 07:24:31

标签: sql oracle ddl create-table

我遇到了

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

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

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

WHERE 1=2表示错误情况,表中不会从表中获取任何行,目标表将类似于除数据之外的源表