創建另一個表的副本時,假設表“tab1”已經存在,我想創建一個名為“tab2”的副本
CREATE TABLE tab2 AS SELECT * FROM tab1 WHERE 1=1;
創建結構和資料的副本。
CREATE TABLE tab2 AS SELECT * FROM tab1 WHERE 1=2;
僅創建結構。據我所知,1=1 表示 TRUE,1=2 表示 FALSE。
我可以說 69=69 而不是 1=1 嗎?我可以說 99=2 而不是 1=2 嗎?
uj5u.com熱心網友回復:
where 1=1僅表示“在哪里為真”,它將將舊表中的所有資料復制到新表中。
where 1=2表示“不正確”,因為沒有行會匹配該條件 NO DATA 被復制到新表(但新表是舊表結構的副本)。
因此,where 1=1用于獲取表結構和資料,而where 1=2用于復制表結構但新表中沒有資料。
是的,您可以使用 69=69 (true) 或 99=2 (untrue),但更傳統的做法是不要在這里發揮創造力,因為這可能會讓后來支持您的代碼的人感到非常困惑。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/432927.html
