У меня относительно большая (для меня) хранимая процедура, над которой я работаю, несет ответственность за сохранение инвентарных значений всякий раз, когда происходит «движение».Хранимые процедуры MySQL с подробной таблицей и транзакциями
Первоначально у меня были все проверки и вставки, происходящие на PHP, но я чувствовал, что количество вещей, которые должны произойти в базе данных, сделало его более управляемым, поместив его в хранимую процедуру и отказав разрешениям INSERT/UPDATE для этих столы.
Так что в стороне от истории, мне любопытно, есть ли способ запустить подготовленный оператор для хранимой процедуры, в которой я могу передать несколько значений, которые будут вставляться в таблицу подробностей.
Например, предположим, что я хочу вставить следующие данные в родительскую и дочернюю записи.
"ACME", "TNT", 100
"ACME", "Anvil", 5
Родитель запись будет содержать ACME
, и дети записи будут иметь подробности TNT, 100
и Anvil, 5
.
Возможно ли каким-либо образом передать эти данные в одну хранимую процедуру?
Причина, по которой я надеюсь сделать это за один проход, допустим, у нас недостаточно TNT, я не хочу, чтобы исходная родительская запись была вставлена, если вся транзакция не может быть выполнена.
почему бы не просто начать/совершить транзакцию с помощью PHP, если у вас уже есть код, который работает? – Bulat
Я хочу, чтобы звонки из разных приложений выполняли определенные проверки для обеспечения целостности данных. Я могу легко отправить ошибку и отменить транзакцию, если флаг/требование клиента не удовлетворяются данными, предоставленными хранимой процедуре. Что-то, что будет зависеть от того, кто его реализовал в PHP/Java/и т. Д. –
Ну, если вы хотите создать поверх многократно используемого кода, я, хотя обычно использую уровень сервиса для этого, а не для создания вашего приложения внутри базы данных , Тогда вы можете передать его в JSON или XML без проблем. – Bulat