Я использую «выбрать ... для обновления» в хранимой процедуре.
но когда хранимая процедура завершается, она возвращает результат из "select ... for update", который я сделал в начале. Есть ли способ заставить его блокировать строки, не возвращая их?
код хранимой процедуры:
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_save`(
in param_cod_emp char(5),
in param_cod_tab char(5),
in param_des_tab varchar(45),
in param_flg_new char(1))
BEGIN
declare var_cod_tab char(5);
start transaction;
select *
from tabla
where cod_emp=param_cod_emp
for update;
if(param_flg_new='0') then
set var_cod_tab=
(select max(cod_tab)+1
from tabla
where cod_emp=param_cod_emp);
insert into tabla(
cod_emp,
cod_tab,
des_tab)
values(
param_cod_emp,
var_cod_tab,
param_des_tab);
else
udpate tabla where
des_tab=param_des_tab
where cod_emp=param_cod_emp
and cod_tab=param_cod_tab;
end if;
commit;
END
этот код хороший способ сделать столбец char похожим на auto_increment?
Большое спасибо за ваше время.