использование вставки в хранимой процедуре с необязательными параметрами - PullRequest
0 голосов
/ 09 февраля 2012

Я немного новичок в написании sql и знаю, что могу написать хранимую процедуру с необязательными параметрами.Как я могу указать необязательные параметры, но обеспечить, чтобы по крайней мере один необязательный параметр был обязательным.Возможно ли это?

Я хочу иметь возможность использовать хранимую процедуру для вставки строки в таблицу журнала, где есть несколько флагов типа, чтобы показать, какая это запись.Поэтому хотя бы один из флагов должен быть установлен в true (1).

1 Ответ

2 голосов
/ 09 февраля 2012

Я думаю, что лучший подход в этом случае - определить только один параметр, например тип ENUM, ведьма будет представлять «ведьма из флагов должна быть установлена ​​в значение true».Это не будет необязательный параметр, потому что хотя бы один из ваших флагов должен быть установлен в true.Столбцы флагов в таблице журналов должны иметь значение DEFAULT false или DEFAULT NULL.

Вы будете использовать оператор IF в процедуре, чтобы установить соответствующий флаг на 1 во вставленных значениях журнала (вы должны объявить временную переменную длякаждый флаг и установите соответствующий флаг в 1).

(Дополнительно, если вы хотите ограничить записи журнала, чтобы иметь хотя бы один флаг в 1, вы можете написать перед вставкой и триггером перед обновлением.)

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