仓酷云

标题: MYSQL教程之确保一切的非空(Non-NULL)值都是独一... [打印本页]

作者: 小女巫    时间: 2015-1-16 22:36
标题: MYSQL教程之确保一切的非空(Non-NULL)值都是独一...
正如前文所提到的,MySQL易学、易部署、易管理和易维护。问:我的SQLServer表的一列同意NULL值。我但愿在其值为非NULL时,该列是独一的。如何才干以编程的体例完成这一举动?假如在该列上设置一个UNIQUE束缚,我只能包括一个值为NULL的纪录。我正在利用触发器完成这一束缚,您能够保举一个更复杂的办法以包管一切的非NULL值独一吗?
答:SQLServer没有完成非NULL值独一性的内建机制,因而您必要经由过程自界说的CHECK束缚来完成这一机制。比方,以下一段编码完成了您所必要的功效:
USEtempdb
CREATEtablet1(c1intNULL,c2char(5)NULL)
CREATEtriggermytriggeront1forinsert,updateas
BEGIN
IF(selectmax(cnt)from(selectcount(i.c1)
ascntfromt1,insertediwheret1.c1=i.c1group
byi.c1)x)>1
ROLLBACKTRAN
END
在SQLServer2000中,您还可使用INSTEADOF触发器来完成这一功效。有关INSTEADOF触发器的具体信息,请参阅以下文章。如需会见这些文章,请会见SQLServer杂志网站,在InstantDoc框中输出InstantDoc号,然后点击Go。相干文章以下:
TrickswithINSTEADOFTriggers;InstantDocnumber15828
INSTEADOFTriggersonViews;InstantDocnumber15791
INSTEADOFTriggers;InstantDocnumber15524
―SQLServerMVPs
怀疑这些功能在MySQL5.0中的成熟性。充其量它们在MySQL中被支持的时间也就一年左右,而在MySQL学习教程其他关系型数据库中则已经存在了近10年的时间。
作者: 灵魂腐蚀    时间: 2015-1-19 18:03
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
作者: 分手快乐    时间: 2015-1-24 16:28
呵呵,这就是偶想说的
作者: 海妖    时间: 2015-2-2 10:48
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
作者: 精灵巫婆    时间: 2015-2-7 18:16
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
作者: 爱飞    时间: 2015-2-22 21:19
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
作者: 小妖女    时间: 2015-3-7 03:06
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
作者: 愤怒的大鸟    时间: 2015-3-14 10:21
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
作者: 不帅    时间: 2015-3-21 02:36
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2