DM7 SQL域
管理SQL域
為了支援SQL標準中的域物件定義與使用,DM支援DOMAIN的建立、刪除以及授權DDL語句,並支援在表定義中使用DOMAIN。域(DOMAIN)是一個可允許值的集合。域在模式中定義,並由< 域名>標識。域是用來約束由各種操作儲存於基表中某列的有效值集。域定義說明一種資料型別,它也能進一步說明約束域的有效值的< 域約束>,還可說明一個< 預設子句>,該子句規定沒有顯式指定值時所要用的值或列的預設值。
建立DOMAIN
CREATE DOMAIN 建立一個新的資料域。定義域的使用者成為其所有者。DOMAIN為模式型別物件,其名稱在模式內唯一。
舉例說明
SQL> CREATE DOMAIN DA INT CHECK (VALUE < 100); executed successfully used time: 11.754(ms). Execute id is 148. SQL> select name,id from sysobjects where name='DA'; LINEID NAME ID ---------- ---- ----------- 1 DA 419430401 used time: 0.945(ms). Execute id is 149.
使用 DOMAIN
在表定義語句中,支援為表列宣告使用域。如果列宣告的型別定義使用域引用,則此列定義直接繼承域中的資料型別、預設值以及CHECK 約束。如果列定義使用域,然後又自己定義了預設值,則最終使用自己定義的預設值。使用者可以使用自己的域。如果要使用其它使用者的域,則必須被授予了該域的USAGE 許可權。DBA 角色預設擁有此許可權。
例如在 T 表中使用上面建立的域DA。
SQL> CREATE TABLE T(ID DA); executed successfully used time: 12.655(ms). Execute id is 149. SQL> select name,id from sysobjects where name='T'; LINEID NAME ID ---------- ---- ----------- 1 T 1540 used time: 1.255(ms). Execute id is 157. SQL> select * from syscolumns where id=1540; LINEID NAME ID COLID TYPE$ LENGTH$ SCALE NULLABLE$ DEFVAL INFO1 INFO2 ---------- ---- ----------- ----------- ------- ----------- ----------- --------- ------ ----------- ----------- 1 ID 1540 0 INTEGER 4 0 Y NULL 0 0 used time: 1.249(ms). Execute id is 158. SQL> insert into t values(1); affect rows 1 used time: 1.180(ms). Execute id is 160. SQL> insert into t values(100); insert into t values(100); [-6604]:Violate check constraint of [CONS134218952]. used time: 1.176(ms). Execute id is 0.
列定義雖然使用了域後,其SYSCOLUMNS 系統表中型別相關欄位記錄域定義的資料型別。也就是說,從SYSCOLUMNS 系統表中不會表現出對域的引用。使用某個域的使用者必須具有該域的USAGE DOMAIN 或USAGE ANY DOMAIN 許可權。
刪除DOMAIN
刪除一個使用者定義的域。使用者可以刪除自己擁有的域,具有DROP ANY TABLE系統許可權的使用者則可以刪除任意模式下的域。RESTRICT表示僅當DOMAIN未被表列使用時才可以被刪除; CASCADE表示級聯刪除。
例如:
SQL> DROP DOMAIN DA CASCADE; executed successfully used time: 29.834(ms). Execute id is 163.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2676362/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7聯機執行SQL語句進行表備份SQL
- DM7聯機執行SQL語句進行歸檔備份SQL
- DM7聯機執行SQL語句進行表空間備份SQL
- DM7使用聯機執行SQL語句進行備份還原SQL
- hirolau/SQL:金融領域的SQL技巧SQL
- DM7 陣列索引陣列索引
- PL/SQL變數作用域SQL變數
- SQL Server 跨域查詢SQLServer跨域
- DM7配置本地歸檔
- DM7搭建資料守護
- DM7配置遠端歸檔
- DM7使用disql管理備份SQL
- DM7使用DMASM安裝DMRACASM
- DM7使用裸裝置搭建DMRAC
- DM7審計之物件審計物件
- DM7修改資料庫引數資料庫
- DM7聯機執行SQL語句進行加密備份與設定跟蹤日誌SQL加密
- 非域環境下SQL Server mirror建立SQLServer
- SQL @@Identity ,Scope_identity() 作用域SQLIDE
- DM7搭建讀寫分離叢集
- DM7使用Disql執行表還原SQL
- DM7閃回與閃回查詢
- 配置SQL server遠端連線(區域網)SQLServer
- DM7 使用dminit工具建立資料庫資料庫
- DM7使用dmrestore工具還原資料庫REST資料庫
- DM7使用DMRMAN執行歸檔還原
- DM7使用DMRMAN執行歸檔修復
- DM7使用DMRAMN執行歸檔恢復
- DM7使用DMRMAN工具刪除備份集
- DM7使用DMRMAN工具檢視備份集
- DM7使用DMRMAN執行歸檔備份
- DM7使用DMRMAN工具匯入備份集
- 非掃描式定位攻擊域內SQL ServerSQLServer
- SQL Server 2016 + AlwaysOn 無域叢集SQLServer
- 通過IP定位區域的SQL優化思路SQL優化
- DM7使用Disql執行表空間還原SQL
- DM7資料複製之模式級複製模式
- DM7使用DMRMAN執行表空間還原