2013-10-15 4 views
0

У меня возникли проблемы с поиском простого способа проверить, содержит ли столбец определенное значение перед обновлением значения в другом столбце в строке таблицы. Например, если у меня есть таблица StudentsParticipationInClass как нижеУбедитесь, что определенный столбец содержит определенное значение при обновлении другого столбца

 
    | ID | Grade | State | 
    | 1 | 'U' |'OnGoing'| 
    | 2 | '3' | 'Done' | 

Я хочу ограничение, которое сообщает пользователю, что, чтобы иметь возможность обновлять состояние на Done Чина должно быть что-то другое, чем «U» или NULL.

+0

Я предлагаю вам добавить некоторую логику в код приложения, так что только записи разрешено обновляться будет показано, как таковой. –

+0

Я хочу, чтобы это было на уровне базы данных, так что если в будущем будет разработана другая программа, она не должна будет добавлять в нее эту логику. – ccb3

ответ

0

Этот запрос может помочь вам:

UPDATE StudentsParticipationInClass
SET State = 'Done'
WHERE Grade <> 'U'
AND WHERE Grade IS NOT NULL
AND WHERE ID = 1

+0

Является ли это SQL -> 'Grade! = 'U'' –

+0

Я не хочу, чтобы это было в запросе на обновление, я бы хотел, чтобы это было как ограничение проверки, поэтому вам не нужно беспокоиться об этом в каждом обновленном заявлении, созданном позже на – ccb3

+1

@Nadeem_MK, в некоторых версиях SQL '! =' [он работает] (http://www.w3schools.com/sql/sql_where.asp), но да, '<>' кажется лучше. Отредактировал мой ответ. – Azamat