Samber
@Samber
Full Stack Web Developer

Возможно ли в хранимую процедуру в качестве параметра передать набор данных?

Сейчас для работы с БД используются запросы вида:
INSERT INTO t VALUSE (data1),(data2),...,(data_n) ON DUPLICATE KEY UPDATE param1=VALUES(param1)...

На UPDETE и INSERT висят тригеры, большинство предназначено для логирования изменений данных.
Случилось так, что для работы триггеров нужна некая дополнительная информация, которая не хранится в таблице, соответственно не передается в запросах.
Вместо триггеров можно использовать хранимые процедуры, туда эти дополнительные данные передать не составит труда.
Однако появляется проблема.
В одном запросе INSERT передавалось множество значений, это позволяло вместо n запросов слать всего один.
Если же заменить триггеры на ХП, придется вызывать их n раз.
Собственно вопрос: возможно ли в качестве параметра, при вызове ХП, передавать набор данных, к примеру таблицу, возможно JSON.... ?
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 2
@aikus
Возможно передать строкой ('a,b,c') и в самой процедуре в цикле её парсить.
Ответ написан
Комментировать
@art_karetnikov
Лучший мой проект: Мобильный банк Сбербанка РФ.
Только вот зачем именно таблицу? Почему не передать просто ее имя? Или даже так - задать это имя заранее, а потом использовать параметр и в нем - 0 - одна ветка процедуры, 1 - вторая ветка процедуры с именем этой таблицы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы