← Back to team overview

maria-developers team mailing list archive

Re: Error 1422 - Explicit or implicit commit is not allowed in stored function or trigger

 

Hi Jerome,


On 11/28/2017 02:33 PM, jerome brauge wrote:
> Hello Alexander,
> I'm facing to a new issue with my stored procedures.
> Some of them are called directly or from trigger.
> When these procedures are called directly, they manage the transaction and when they are called from trigger, they doesn't manage the transaction.
> This works fine on Oracle, SQLServer , ... but fail on Mariadb because the check is done in is_not_allowed_in_function() before the call.

Sorry, this part is out of scope of my knowledge.
Can you please discuss with Sergei?

> 
> use test;
> set sql_mode=oracle;
> create or replace table t1 (c1 int);
> insert into t1 values (1);
> delimiter /
> create or replace procedure p1(manage_transactionnal int)
> is
> begin 
>   if manage_transactionnal = 1 then
>     commit;
>   end if;
> end;
> /
> create or replace trigger tg1 after delete on t1 for each row
> begin
>  call p1(0);
> end;
> /
> delimiter ;
> start transaction;
> delete from t1;
> rollback;
> 
> What do you think about this ?
> 
> Regards,
> Jérôme.
> 


Follow ups

References