本文介绍了“如何管理DM7 SQL域”的知识。很多人在实际案件操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!
管理SQL域
为了支持SQL标准中domain对象的定义和使用,DM支持DOMAIN的创建、删除和授权DDL语句,支持在表定义中使用DOMAIN。DOMAIN是允许值的集合。域在模式中定义,并由域名标识。字段用于通过各种操作来约束存储在基表列中的一组有效值。域定义描述了一种数据类型,它可以进一步描述约束域有效值的域约束,还描述了一个default子句,当没有显式指定值时,该子句指定要使用的值或列的默认值。
创建域
CREATE DOMAIN创建一个新的数据域。定义域的用户成为域的所有者。DOMAIN是一个模式类型对象,其名称在模式中是唯一的。
说明
sqlcreatedomaindintcheck(value 100);executedsuccessfullysedtime :11.754(ms). executeidis 148 . sqlseselectname,id fromssysobjectswhername=' DA ';
LINEIDNAMEID
-
1DA419430401
使用时间:0.945(毫秒)。Executedis 149。使用DOMAIN
在表定义语句中,支持将域用于表列声明。如果列声明的类型定义使用域引用,则该列定义直接继承域中的数据类型、默认值和CHECK约束。如果列定义使用域,然后定义自己的默认值,最终将使用自己定义的默认值。用户可以使用自己的域。如果您想使用另一个用户的域,您必须被授予该域的USAGE权限。默认情况下,数据库管理员角色拥有此权限。
例如,使用上面在T表中创建的字段DA。
sqlcreatetable(IDDA);
成功执行
usedtime:12.655(毫秒),Executeidis149。
SQLselectname,idfromsysobjectswherename=' T
LINEIDNAMEID
-
1T1540
used time :1.255(ms). executeidis 157。
SQL select * from syscolumns hereid=1540;
LINEIDNAMEIDCOLIDTYPE $ LENGTH $ scale nullable $ defvalinfo 1 info2
-
1ID15400INTEGER40YNULL00
used time :1.249(ms). executeidis 158。
SQLinsertintotvalues(1);
影响行1
used time :1.180(ms). executeidiss 160
SQLinsertintotvalues(100);
insertintotvalues(100);
[-6604]: violatecheckconstraintof[cons 134218952]。
使用时间:1.176(毫秒)。Executedis0。列定义尽管使用了域,但SYSCOLUMNS系统表中的类型相关字段记录了域定义的数据类型。也就是说,没有来自SYSCOLUMNS系统表的对域的引用。使用域的用户必须拥有该域的USAGE DOMAIN或USAGE ANY DOMAIN权限。
删除域
删除用户定义的域。用户可以删除自己的域,而拥有“删除任何表”系统权限的用户可以在任何模式下删除域。RESTRICT意味着只有当表列不使用DOMAIN时,才可以删除它;CASCADE表示级联删除。
例如:
SQLDROPDOMAINDACASCADE
成功执行
使用时间:29.834(毫秒)。Executedis 163。“如何管理DM7 SQL域”就介绍到这里,感谢阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/154589.html