您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“DM7 SQL域怎么管理”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
管理SQL域
為了支持SQL標(biāo)準(zhǔn)中的域?qū)ο蠖x與使用,DM支持DOMAIN的創(chuàng)建、刪除以及授權(quán)DDL語(yǔ)句,并支持在表定義中使用DOMAIN。域(DOMAIN)是一個(gè)可允許值的集合。域在模式中定義,并由< 域名>標(biāo)識(shí)。域是用來(lái)約束由各種操作存儲(chǔ)于基表中某列的有效值集。域定義說(shuō)明一種數(shù)據(jù)類型,它也能進(jìn)一步說(shuō)明約束域的有效值的< 域約束>,還可說(shuō)明一個(gè)< 缺省子句>,該子句規(guī)定沒有顯式指定值時(shí)所要用的值或列的缺省值。
創(chuàng)建DOMAIN
CREATE DOMAIN 創(chuàng)建一個(gè)新的數(shù)據(jù)域。定義域的用戶成為其所有者。DOMAIN為模式類型對(duì)象,其名稱在模式內(nèi)唯一。
舉例說(shuō)明
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
在表定義語(yǔ)句中,支持為表列聲明使用域。如果列聲明的類型定義使用域引用,則此列定義直接繼承域中的數(shù)據(jù)類型、缺省值以及CHECK 約束。如果列定義使用域,然后又自己定義了缺省值,則最終使用自己定義的缺省值。用戶可以使用自己的域。如果要使用其它用戶的域,則必須被授予了該域的USAGE 權(quán)限。DBA 角色默認(rèn)擁有此權(quán)限。
例如在 T 表中使用上面創(chuàng)建的域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 系統(tǒng)表中類型相關(guān)字段記錄域定義的數(shù)據(jù)類型。也就是說(shuō),從SYSCOLUMNS 系統(tǒng)表中不會(huì)表現(xiàn)出對(duì)域的引用。使用某個(gè)域的用戶必須具有該域的USAGE DOMAIN 或USAGE ANY DOMAIN 權(quán)限。
刪除DOMAIN
刪除一個(gè)用戶定義的域。用戶可以刪除自己擁有的域,具有DROP ANY TABLE系統(tǒng)權(quán)限的用戶則可以刪除任意模式下的域。RESTRICT表示僅當(dāng)DOMAIN未被表列使用時(shí)才可以被刪除; CASCADE表示級(jí)聯(lián)刪除。
例如:
SQL> DROP DOMAIN DA CASCADE; executed successfully used time: 29.834(ms). Execute id is 163.
“DM7 SQL域怎么管理”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。