您好,登錄后才能下訂單哦!
本篇內容介紹了“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.
“DM7 SQL域怎么管理”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。