首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server :检查列具有其他列的成员,但没有其他列的成员

SQL Server :检查列具有其他列的成员,但没有其他列的成员
EN

Stack Overflow用户
提问于 2017-07-14 18:33:58
回答 2查看 37关注 0票数 0

主题/标题不是那么直观,我只需要举个例子

假设我们有一个名为ARTICLE的表,如下所示:

代码语言:javascript
复制
ARTICLE (idArticle, IdConference, IdMagazine, DateSent, Title, Sector);

问:插入一个约束,使idArticle只有一个IdConference或只有一个IdMagazine --但不能同时有这两个。

我马上就知道会是这样的:

代码语言:javascript
复制
Alter table Article
add constraint checkidArt check( )

但是我不知道如何指定列IdArticle应该只有一个IdConference或只有一个IdMagazine值。

EN

回答 2

Stack Overflow用户

发布于 2017-07-14 18:42:52

假设它是SQL Server,因为MySQL没有检查约束:

代码语言:javascript
复制
ALTER TABLE Article
ADD CONSTRAINT checkidArt CHECK (IdConference IS NULL OR IdMagazine IS NULL)
票数 2
EN

Stack Overflow用户

发布于 2017-07-14 18:41:24

如果你使用的是MySQL,那么就不可能添加约束,因为MySQL不支持CHECK约束。对文档执行Here's操作:

所有存储引擎都会解析但忽略CHECK子句。

因此,您唯一的选择是使用带有SIGNAL SQLSTATEMESSAGE_TEXTTRIGGER来标记错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45100818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档