我試圖執行DDL命令影響表的行數的場景,但執行alter命令總是返回0行數。可以執行DDL命令,例如alter query會影響表的行嗎?
a)表a有3列b,c,d,插入3條記錄。
B)ALTER TABLE a DROP COLUMN b
刪除B列不應該在表已經影響到行。
我試圖執行DDL命令影響表的行數的場景,但執行alter命令總是返回0行數。可以執行DDL命令,例如alter query會影響表的行嗎?
a)表a有3列b,c,d,插入3條記錄。
B)ALTER TABLE a DROP COLUMN b
刪除B列不應該在表已經影響到行。
要深入淺出的講,除了TRUNCATE
和DROP TABLE
沒有其他DDL
會影響數據(行)表所擁有的..
從技術上說,一個DDL
應該觸摸模式對象,而不是數據。 TRUNCATE將重置High WaterMark (HWM)
。並標記爲塊沒有數據。 DROP TABLE
將完全刪除元數據及其相關數據。
CREATE
作爲SELECT
東西預言從標準SQL,其中DDL(CREATE
)首先使用所述結果集元數據(FROM SELECT
)執行給專門開並且然後數據被加載太!如果loadimg因任何原因失敗,則該進程將被暫停並且不會創建對象!
因此得出結論:沒有DDL命令會返回實際上Oracle的CREATE以外的其他語言行。 – user2822707
是的,同樣'CREATE'作爲'SELECT'只用於創建一個新對象,而現有的你不能。 –
'create table ... as select ...'不是特定於Oracle的。它是SQL標準的一部分 –
DDL不會影響特定的行(插入/更新/刪除的方式) - 它影響表格對象。 – haki
Create是一個DDL命令並創建表爲(select * from some_table)返回受影響的行。 – user2822707
這是返回結果的'select'語句。 DDL操作在對象\段上執行 - 意義 - 結構,而不是數據行。 – haki