首页 > 解决方案 > 添加不允许我插入具有某些列的成员的约束的问题

问题描述

我创建了这张表

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

标签: sql-servercheck-constraints

解决方案


推荐阅读