Сделать столбец обязательным, если другой столбец имеет определенное значение - PullRequest
0 голосов
/ 26 мая 2019

Что у меня есть:

CREATE TABLE [dbo].[User]
(
    [id] INT NOT NULL PRIMARY KEY, 
    [name] VARCHAR(50) NOT NULL, 
    [postcode] INT NOT NULL, 
    [phone] INT NULL
)

Я хочу, чтобы телефонный номер был необходим ТОЛЬКО если почтовый индекс больше 40000. Если почтовый индекс меньше 40000, пользователь может вставить номер телефона, хотяэто не требуется.

Как мне это сделать?

Ответы [ 2 ]

4 голосов
/ 26 мая 2019

Вы можете использовать проверочное ограничение:

CREATE TABLE [dbo].[User]
(
    [id] INT NOT NULL PRIMARY KEY, 
    [name] VARCHAR(50) NOT NULL, 
    [postcode] INT NOT NULL, 
    [phone] INT NULL, 
    CONSTRAINT CHK_Postcode CHECK (postcode >= 4000 OR Phone IS NOT NULL)
);
0 голосов
/ 26 мая 2019

Это нужно сделать из внешнего интерфейса, вставляя значения в базу данных.Вставить запрос в один столбец на основе другого в БД для той же таблицы невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...