sql - SQL 数据库系统
问题描述
我的关系中有三个布尔属性,我希望它们中只有一个具有真实值,否则表应该给出错误。我怎样才能做到这一点?
解决方案
如果您的 DBMS 支持它们(大多数都支持),您可以使用检查约束。在其中您检查,其中一个标志是正确的。为此,您可以使用布尔表达式。
CREATE TABLE elbat
(...
CHECK (flag1 = true
AND flag2 = false
AND flag3 = false
OR flag1 = false
AND flag2 = true
AND flag3 = false
OR flag1 = false
AND flag2 = false
AND flag3 = true));
(只是为了理解,语法可能因 DBMS 而异。)
推荐阅读
- python-3.x - astropy:如何检查参数是否具有正确的单位
- swift - 将值从 Alamofire 获取请求传递给变量
- c++ - 插入 unordered_map 丢失了
- android - 构建 Android 库时出错:不支持直接本地 .aar 文件依赖项
- react-native - How to render photo from camera roll within a card
- c - sscanf changing the value of the sentence being parsed
- r - R neuralnet package: Can't train neural network
- windows - Go program as windows service
- python - Python3: Does the built-in function "map" have a bug?
- node.js - How to force to show image orientation?