2016-04-16 55 views
0

我無法弄清楚以下teradata語法之間的區別。有人可以請幫忙。teradata中創建表語法的區別

CREATE TABLE EMP_TABLE_BACKUP AS EMP_TABLE WITH DATA; 

VS

CREATE TABLE EMP_TABLE_BACKUP AS (SELECT * FROM EMP_TABLE) WITH DATA; 
+0

所有細節,我相信在這兩個之間沒有什麼區別。兩者都將創建具有相同結構和數據的表格。您可以在每個查詢中使用不同的名稱,並使用SHOW TABLE命令測試是否有任何區別。通常情況下,不應該有任何 – Mohan

回答

2

CREATE TABLE AS existing_tableCREATE TABLE AS (SELECT...)之間的巨大差異:

當你複製一個現有的表最上表&列級的屬性是繼承的,例如SETMULTISET,主要&二級索引,NOT NULL,COMPRESS。僅觸發器&不復制外鍵。

但是,當您實現SELECT時,大多數屬性都會丟失,例如,每列都將是無效的&並且PI可能默認爲第1列。

你得到的Teradata manuals

+0

謝謝!另一個問題 - 默認情況下在表上啓用回退功能嗎? – Pugazh

+1

@Pugazh:在數據庫級別設置'FALLBACK'的默認值,請參閱** dbc.DatabasesV.ProtectionType **,'F'或'N'。 – dnoeth