SQL数据库中为列增加约束的问题

约束必须满足下面5个条件。1:只能是8位2:前两位是03:3~4位为数字4:第5位为下划线5:6~8位为字母... 约束必须满足下面5个条件。
1:只能是8位
2:前两位是0
3:3~4位为数字
4:第5位为下划线
5:6~8位为字母
展开
 我来答
z3150410
2011-12-29 · 超过26用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:57.1万
展开全部
对着表定义窗口右键选择CHECK 约束 在 点添加 在“表达式”一行中填写就行了。
1. len([列名])=10
2. [列名] like '00%'
3.[列名] like '__[0-9][0-9]%'
4.[列名] like '____[_]%'
5.[列名] like '_____[a-z,A-Z][a-z,A-Z][a-z,A-Z]%'
这样式不是很简单啊 直接操作工具就行了。这应该没超出你所学吧 都是 sql的运算符
更多追问追答
追问
你写的没超出我学的。但我有2个疑问。
1:第一条长度是8把。你怎么写成10?!

2:你写的这些表达式只是约束必须有这些00._下划线等的存在。并没排列好它的位置。比如我3.4位是0.其他的顺序随便怎么排。只要都存在即可了?
追答
1.这个是我写错了是8
2. [列名] like '00%' 是第1,2位为0其它的位置无限制。你不是就是这个要求吗?如果要限制的话请提出来。
biocommando
2011-12-29 · TA获得超过4867个赞
知道大有可为答主
回答量:2395
采纳率:0%
帮助的人:1364万
展开全部
这种约束最好建立在前台吧,用一楼的正则表达式比较好实现
追问
好的东西要是自己的才好。再好我得不到只能留下一声叹息!
追答
你要不用正则的话,貌似只能用触发器了,写起来就麻了个烦了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yaogogo2010
2011-12-29 · TA获得超过2546个赞
知道小有建树答主
回答量:1187
采纳率:0%
帮助的人:1221万
展开全部
^00[0-9]^2_[a-zA-Z]^3

是不是用正规表现阿?
请参考.
更多追问追答
追问
你写的超出我所学的范围了。我只学了SQL语言增删改。
追答
不用正规表现,比较困难吧..

如果表格已经存在了。可以用alter table

ALTER TABLE XXX ADD(
constraint ck_A check (columnA like '^00[0-9]^2_[a-zA-Z]^3')
);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jelvis
2011-12-29 · TA获得超过5631个赞
知道大有可为答主
回答量:2480
采纳率:62%
帮助的人:813万
展开全部
要用正则表达式才好写的,要不麻烦S你
追问
我不怕麻烦。你们说的正规表达式还没学。这道题除了这个还有没其他解决办法。这是书上第1个小题。应该不难。。。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式