У меня есть следующая хранимая процедура, которую я использую в рабочей среде mysql
CREATE DEFINER=`root`@`localhost` PROCEDURE `updateContracts`(
p_work_contract_id int,
p_product varchar(500)
)
BEGIN
UPDATE work_contract_objective
set product = p_product
WHERE work_contract_id=p_work_contract_id;
END
Когда я передаю параметры p_work_contract_id и p_product, я получаю следующий результат, и таблица не обновляется
set @p_work_contract_id = 0;
set @p_product = '0';
call morpheus_mvp.updateContracts(@p_work_contract_id, @p_product);
select @p_work_contract_id, @p_product;
я не получаю никакого результата, в work_contract_objective нет записи с нулем work_contract_id, что здесь может быть не так, параметры не передаются в переменные процедуры
С кодом в вашей процедуре и вашим набором кодов выполнение процедуры не имеет значения. Ваша процедура выполняет обновление на основе заданных параметров и ничего не возвращает или не устанавливает. Затем, после вызова процедуры, вы выбираете те же переменные, которые приведут к 0, 0 в качестве ответа. Чего вы ожидали в результате? Если вы удалите вызов процедуры, оператор select вернет все, что вы назначили этим переменным.
одна вкладка открывается автоматически с этими значениями, установленными p_work_contract_id = 0; установить p_product = '0'; вызовите morpheus_mvp.updateContracts (p_work_contract_id, p_product); выберите p_work_contract_id, p_product;
установите @p_work_contract_id на некоторое значение, которое действительно присутствует в таблице
Эта хранимая процедура никак не может работать, поэтому проблема должна быть в данных.
Верстак работает так, чтобы сохранять последние использованные вкладки. Это не означает, что всякий раз, когда вы его открываете, он запускает этот код на открытых вкладках. Приходится запускать вручную. Я думаю, вы не поняли, как работает верстак.
Нигде результата нет. У вас есть work_contract_objective с нулевым work_contract_id?