sql-server - 添加不允许我插入具有某些列的成员的约束的问题
问题描述
我创建了这张表
CREATE TABLE members
(
member_id INT PRIMARY KEY NOT NULL,
first_name VARCHAR(20),
last_name VARCHAR(20),
web_page VARCHAR(200),
e_mail VARCHAR(200),
cv VARCHAR(800),
dep_id INT,
teacher_id INT,
CHECK (dep_id IN (1, 2, 3) AND teacher_id IS NULL)
);
我想添加一个约束,当您插入一个 dep_id 为 1、2 或 3 的成员时,您必须选择一个为 NULL 的teacher_id。
当我使用这个表时,它不会让我插入一个 dep_id 为 4 的成员以及任何teacher_id 。
我试图在与 dep_id 相同的行上进行检查,但它也不会通过导致它关于另一列(teacher_id)。(有人甚至可以想到一个触发器,但我认为这里没有必要)
我使用 SQL Server
解决方案
推荐阅读
- ios - 如何使用 Alamofire 将参数发布到服务器?
- swift - 无法在 swift 4 中解决此 Null 问题?
- angular - 角度 CookieService 实例启动错误
- c# - 将方法传递给新表单的控件
- c# - 如何在 button_click 方法中使用文本框数组?
- javascript - 导入默认类不会让我使用它的功能
- javascript - Javascript Azure 函数输出进入死信队列
- c# - 无法通过 Id Asp.Net Mvc 从 DropdownList 中获取名称
- php - Laravel 5.6 中带有 2 个表的 json 响应
- android - android studio中的httpurl响应代码为空白