刪除表及其數據(可選)。
drop TABLE table [RESTRICT | CASCADE] [%DELDATA | %NODELDATA]
table
- 要刪除的表的名稱。 表名可以是限定的(schema.table
),也可以是非限定的(table
)。 非限定表名接受默認模式名。 沒有使用架構搜索路徑值。RESTRICT
,CASCADE
- 可選-限制僅允許刪除沒有依賴視圖或完整性約束的表。如果未指定關鍵字,則默認設置為RESTRITION
。CASCADE
允許刪除具有依賴視圖或完整性約束的表;作為表刪除的一部分,任何引用視圖或完整性約束也將被刪除。外鍵約束不支持CASCADE
關鍵字選項。%DELDATA
,%NODELDATA
- 可選-這些關鍵字指定在刪除表時是否刪除與表關聯的數據。默認情況下,刪除表格數據。drop TABLE
命令刪除一個表及其對應的持久化類定義。如果該表是其架構中的最后一項,則刪除該表也會刪除該架構及其相應的持久化類包。
默認情況下,drop TABLE
同時刪除表定義和表數據(如果存在)。%NODELDATA
關鍵字允許指定刪除表定義,但不能指定刪除表的數據。
drop TABLE
刪除與該表關聯的所有索引和觸發器。
要刪除表格,必須滿足以下條件:
SQLCODE-30
錯誤。[DdlAllowed]
,則嘗試刪除該表會生成SQLCODE-300
錯誤。drop TABLE
將無限期等待鎖被釋放。如果可能出現鎖爭用,那么在發出drop TABLE
之前以獨占模式鎖定表是很重要的。drop TABLE
必須指定CASCADE
關鍵字。嘗試在不級聯的情況下刪除具有關聯視圖的表會生成SQLCODE-321
錯誤。SQLCODE-99
錯誤。SQLCODE-300
錯誤,并顯示以下消息:Class 'MySuperClass' has derived classes and therefore cannot be dropped via DDL.
可以使用$SYSTEM.SQL.Schema.DropTable()
方法刪除當前名稱空間中的表??梢灾付⊿QL表名。與drop TABLE
不同,此方法可以刪除未使用[DdlAllowed]
定義的表。第二個參數指定是否也應該刪除表數據;默認情況下,不刪除數據。
DO $SYSTEM.SQL.Schema.DropTable("Sample.MyTable",1,.SQLCODE,.%msg) IF SQLCODE '= 0 {WRITE "SQLCODE ",SQLCODE," error: ",%msg}
可以使用$SYSTEM.OBJ.delete()
方法刪除當前名稱空間中的一個或多個表。必須指定投影表的永久類名(而不是SQL表名)??梢允褂猛ㄅ浞付ǘ鄠€類名。第二個參數指定是否也應該刪除表數據;默認情況下,不刪除數據。
drop TABLE
命令是特權操作。用戶必須具有%DROP_TABLE
管理權限才能執行drop TABLE
。否則將導致SQLCODE-99
錯誤,因為%msg
用戶沒有%DROP_TABLE
權限。如果擁有適當的授予權限,則可以使用grant
命令分配%DROP_TABLE
權限。
即使drop TABLE
操作同時刪除了表和表數據,用戶也不必具有指定表的delete OBJECT
權限。
在嵌入式SQL中,可以使用$SYSTEM.Security.Login()
方法以具有適當權限的用戶身份登錄:
DO $SYSTEM.Security.Login("_SYSTEM","SYS") &sql( )
必須具有%Service_Login:Use
權限才能調用$SYSTEM.Security.Login
方法。
drop TABLE
不能用于通過定義持久類創建的表,除非表類定義包括[DdlAllowed]
。否則,操作將失敗,并出現SQLCODE-300
錯誤,同時未為類‘Schema.tablename’啟用%msg DDL
。
刪除表不會刪除該表的對象權限。例如,授予用戶在該表上插入、更新或刪除數據的權限。
由于這些原因,通常建議在刪除表之前使用revoke命令撤消表中的對象權限。
默認情況下,drop TABLE
刪除表定義和表數據。此表數據刪除是原子操作;如果drop TABLE
遇到無法刪除的數據(例如,具有引用約束的行),則任何已執行的數據刪除都會自動回滾,結果是不會刪除表數據。
可以使用$SYSTEM.SQL.Util.SetOption()
方法DDLDropTabDelData
選項設置表數據刪除的系統范圍默認值。要確定當前設置,請調用$SYSTEM.SQL.CurrentSettings()
,顯示Does DDL drop TABLE delete the table's data? setting
.
默認值為1
(“是”)。這是此選項的推薦設置。如果希望drop TABLE
在刪除表定義時不刪除表數據,請將此選項設置為0(“否”)。
可以在每個表的基礎上覆蓋數據刪除。刪除表時,可以使用%NODELDATA
選項指定drop TABLE
,以防止自動刪除表數據。如果系統范圍的默認值設置為不刪除表數據,則可以通過使用%DELDATA
選項指定drop TABLE
來逐個表刪除數據。
在大多數情況下,drop TABLE
使用高效的終止范圍操作自動刪除表的數據。以下情況阻止使用KILL EXTEND
:表有引用它的外鍵;投影表的類是持久類的子類;類不使用默認存儲;有ForEach = "row/object
"觸發器;有引用非默認流字段全局位置的流字段。如果其中任何一個適用,drop TABLE
將使用效率較低的delete RECORD
操作刪除表的數據。
可以使用truncate TABLE
命令刪除表的數據,而不刪除表定義。
drop TABLE
語句獲取表的獨占表級鎖。這可以防止其他進程在表刪除過程中修改表定義或表數據。這個表級鎖足以刪除表定義和表數據;drop TABLE
不會獲得表數據的每一行的鎖。此鎖在drop TABLE
操作結束時自動釋放。
默認情況下,如果在引用嘗試刪除的表的另一個表上定義了任何外鍵約束,則不能刪除該表。在刪除它們引用的表之前,必須刪除所有引用的外鍵約束。在嘗試drop TABLE
操作之前未刪除這些外鍵約束會導致SQLCODE-320
錯誤。
此默認行為與限制關鍵字選項一致。外鍵約束不支持CASCADE
關鍵字選項。
要更改此默認外鍵約束行為,請參考SET OPTION
命令的COMPILEMODE=NOCHECK
選項。
刪除表會自動清除所有相關的高速緩存查詢,并清除%SYS.PTools.StatsSQL
生成的查詢信息。刪除表會自動清除任何相關查詢的所有SQL運行時統計信息(SQL Stats)信息。
要確定當前命名空間中是否存在指定表,請使用$SYSTEM.SQL.Schema.TableExists()
方法。
默認情況下,如果嘗試刪除不存在的表,drop TABLE
會發出SQLCODE-30
錯誤。這是推薦的設置。要確定當前設置,請調用$SYSTEM.SQL.CurrentSettings()
,它顯示允許DDL刪除不存在的表或視圖設置。默認值為0
(“否”)。如果此選項設置為1
(“是”),則不存在的表的drop TABLE
不執行任何操作,也不會發出錯誤消息。
在管理門戶、系統管理、配置、SQL和對象設置中,通過選中忽略冗余DDL語句復選框,可以在系統范圍內設置此選項(以及其他類似的創建、更改和刪除選項)。
下面的嵌入式SQL示例創建名為SQLUser.MyEmployees
的表,然后將其刪除。此示例指定在刪除該表時不刪除與該表關聯的任何數據:
ClassMethod DropTable(){ &sql(CREATE TABLE SQLUser.MyEmployees ( NAMELAST char (30) NOT NULL, NAMEFIRST char (30) NOT NULL, STARTDATE TIMESTAMP, SALARY MONEY ) ) w !,"創建表" /* &sql(SQL code populating SQLUser.MyEmployees table) &sql(SQL code using SQLUser.MyEmployees table) */ n SQLCODE,%msg &sql(drop TABLE SQLUser.MyEmployees %NODELDATA) if SQLCODE = 0 { w !,"表已刪除" } else { w !,"SQLCODE=",SQLCODE,": ",%msg }}
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
1.開放 "設置 "。2.單擊 "普通和普通選項。3.開放 "無障礙和。4.在中向下滾動無障礙和找到 "字幕和封閉字幕 "選項并打開它。5.點擊 "風格 "。6.然后點擊 "創造新風格 "。找到手機里的設置程序,點開。2.在出現的設置菜單中,單擊 "普通和普通選項。3.打開 "無障礙和選項。4.在彈出菜單中,我們可以看到 "字幕和隱藏字幕。5.在出現的樣式菜單中,單擊 "創造新風格 "。用戶可以使...
當然是北京可以養金毛嗎?。金毛有以下優點,適合飼養。1.金毛是一種溫和的犬種。它是三種非攻擊性犬種之一。它很溫柔,對人類很友好,喜歡和人玩,平時也很溫柔。(但是唐 我不認為它 真的沒有攻擊性。)2,金毛顏值高,小時候特別軟萌,長大后很帥,笑起來有一種別扭的感覺,很有治愈力。3.金毛 s智商高。據說金毛 s的智商在狗界排第四,可見他很聰明。平時稍加訓練,金毛就能很快理解他的主人 s的話,學好他的技術...
唐山衛視是幾頻道?唐山衛視是11頻道,各地區可能不一樣。唐山電視臺地址在哪?地址:廣達街1號,唐山工人醫院對面郵政編碼:06300唐山電視臺地址:唐山市光大街1號唐山有線廣播電視臺地址:唐山市印盒路附近唐山有線廣播電視臺地址:唐山市光大街1號唐山電視演播室地址:唐山市國防路唐山電視臺影視頻道廣告部地址:河北省唐山市光大街1號唐山有線電視臺大理路地址:唐山市大理路46號廣播電臺在唐山的頻率是多少?1...