parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Один запрос и UPDATE

Никита Козин 15.05.2005 13:59 / 15.05.2005 14:07

Вопрос на засыпку :)

Задача: Есть таблица с полем is_default, которое у всех записей равно нулю и только у одной равно единице. Когда ставим любой записи флаг is_default у всех остальных он должен сбрасываться.

Вопрос: Можно ли как-нибудь извернувшись написать это одним запросом?

У меня сейчас:
@setDefault[table;field;flag;where]
^if(def $flag && ^flag.int(0) != 0){
	^csql.void{
		UPDATE
			$table
		SET
			^if(def $field){$field}{is_default} = 0
	}
	^csql.void{
		UPDATE
			$table
		SET
			^if(def $field){$field}{is_default} = 1
		WHERE
			^if(def $where){$where}{id} = $flag
	}
}
# end @setDefault[]