Я хочу выполнить около 100 Update/Delete
Динамические запросы, сделанные с помощью PHP и отправленные в Хранимую процедуру MySQL.Несколько динамических запросов в MySQL
В настоящее время я могу выполнить ни одного динамический запрос в хранимой процедуре с этим кодом, как
CREATE PROCEDURE `updateBill`(IN `queryIs` VARCHAR(10000))
BEGIN
SET @t1 = queryIs;
PREPARE stmt3 FROM @t1;
EXECUTE stmt3;
DEALLOCATE PREPARE stmt3;
END
Но это может выполнить только один запрос завершился с ;
. Но у меня есть около 100 динамических запросов и хочу выполнять их как
update abc set a=1, b=0 where c=5;
update abc set a=7, b=3 where c=6;
delete from abc where c = 3;
update abc set a=9, b=2 where c=8;
update abc set a=2, b=1 where c=12;
delete from abc where c = 10;
Все из вышеперечисленных запросов PHP из данных, посылаемых от клиентских данных. Я не хочу быстро создавать соединение с сервером и выполнять выше запросы один за другим, но я просто хочу отправить выше запросы, как на одну строку в параметре хранимой процедуры, а затем создать из него динамические запросы, а затем выполнить все выше.
Вы можете, конечно, просто разделить параметр, например. ';' (или добавить второй параметр, который содержит длины, это облегчит различие между строкой, содержащей ''; ''и фактическим разделителем) и выполнить их в цикле. С другой стороны, нет абсолютно никаких оснований для этого. Просто откройте соединение и выполните запросы один за другим (или подготовленные) с php. Это на самом деле быстрее, чем использование динамического sql, может делать больше и в противном случае будет делать то же самое. (Для этого и есть api. Если бы вы могли оптимизировать его, выполнив его по-своему, это было бы уже реализовано). – Solarflare
А также вы можете использовать multiquery в php, если вы абсолютно хотите отправить его сразу, поэтому один запрос вызывается всей цепочкой, а не с помощью хранимой процедуры. Это не быстрее, но может облегчить вам (я не совсем уверен, в чем причина вашей идеи). – Solarflare