创建另一个表的副本时,假设表“tab1”已经存在,我想为其创建一个名为“tab2”的副本
CREATE TABLE tab2 AS SELECT * FROM tab1 WHERE 1=1;
Run Code Online (Sandbox Code Playgroud)
创建结构和数据的副本。
CREATE TABLE tab2 AS SELECT * FROM tab1 WHERE 1=2;
Run Code Online (Sandbox Code Playgroud)
仅创建结构。据我所知,1=1 表示 TRUE,1=2 表示 FALSE。
我可以说 69=69 而不是 1=1 吗?我可以说 99=2 而不是 1=2 吗?
where 1=1只是意味着“其中 true”,它将把旧表中的所有数据复制到新表中。
where 1=2表示“where untrue”,并且因为没有行与该条件匹配,所以不会将任何数据复制到新表(但新表是旧表结构的副本)。
因此,where 1=1用于获取表结构和数据,而where 1=2用于复制表结构但新表中没有数据。
是的,您可以使用 69=69(正确)或 99=2(不正确),但更传统的做法是不要在这里发挥创意,因为这可能会让后来支持您的代码的人感到非常困惑。