SQL中创建表时怎样限定属性值的取值,如一个表中有一列为"科目",限定其只能取"语文","数学","英语".

 我来答
linyanfeng0
推荐于2018-05-09 · 超过27用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:58.9万
展开全部
创建表时:
Create Table 表名(列名 char(10) check (列名 In('语文','数学','英语')))

创建后添加约束:
Alter Table 表名 add Constraint 约束名 CHeck(
列名 In('语文','数学','英语'))
softqiu
2010-08-19 · 超过65用户采纳过TA的回答
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:177万
展开全部
是sql server吗?给你个例子

CREATE TABLE publishers
(
pub_id char(4) NOT NULL
CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED
CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')
OR pub_id LIKE '99[0-9][0-9]'),
pub_name varchar(40) NULL,
city varchar(20) NULL,
state char(2) NULL,
country varchar(30) NULL
DEFAULT('USA')
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
直男救星来了
2010-08-19 · TA获得超过673个赞
知道小有建树答主
回答量:168
采纳率:100%
帮助的人:203万
展开全部
呃,除了触发器外,另外一个方法是新建一张科目表,主键为科目代号,然后把你的那张表科目字段和科目表的主键建立外键约束foreign key即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vachelcai
2010-08-19 · 超过98用户采纳过TA的回答
知道小有建树答主
回答量:285
采纳率:66%
帮助的人:140万
展开全部
你可以新建一个触发器 在 insert和update事件,检查修改的值是否是在你的列举之内
参考资料为微软的说明

参考资料: http://msdn.microsoft.com/zh-cn/library/ms162164%28SQL.100%29.aspx

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式