溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DM7 SQL域怎么管理

發(fā)布時(shí)間:2021-12-21 17:18:25 來(lái)源:億速云 閱讀:131 作者:iii 欄目:數(shù)據(jù)庫(kù)

本篇內(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í)用文章!

向AI問一下細(xì)節(jié)

免責(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)容。

AI