仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 788|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL教程之确保一切的非空(Non-NULL)值都是独一...

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
正如前文所提到的,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:18 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
分手快乐 该用户已被删除
板凳
发表于 2015-1-24 16:28:21 | 只看该作者
呵呵,这就是偶想说的
海妖 该用户已被删除
地板
发表于 2015-2-2 10:48:08 | 只看该作者
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
精灵巫婆 该用户已被删除
5#
发表于 2015-2-7 18:16:21 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
爱飞 该用户已被删除
6#
发表于 2015-2-22 21:19:19 | 只看该作者
我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!
小妖女 该用户已被删除
7#
发表于 2015-3-7 03:06:26 | 只看该作者
从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-14 10:21:52 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
不帅 该用户已被删除
9#
发表于 2015-3-21 02:36:58 | 只看该作者
如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-20 18:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表