如何设置mysql多触发器
如何将这些触发器保持在单个触发器中 我试过了,但我不确定我犯了什么错误 下面是我的扳机如何设置mysql多触发器,mysql,sql,triggers,Mysql,Sql,Triggers,如何将这些触发器保持在单个触发器中 我试过了,但我不确定我犯了什么错误 下面是我的扳机 Mysql不支持所有操作的一个触发器,例如SQLServer 在mysql中,您正在以您必须的方式进行操作 如果希望集中代码,可以创建一个过程,并使用新/旧信息和事件标识符(I/U/D)从3个不同触发器调用同一个过程。在您的情况下,正确的解决方案可能取决于您实际已经尝试了什么以及尝试的结果 例如,您可能只需要将您的UPDATE语句包含在BEGIN。。。结束,这就足够了: create trigger C
Mysql不支持所有操作的一个触发器,例如SQLServer 在mysql中,您正在以您必须的方式进行操作
如果希望集中代码,可以创建一个过程,并使用新/旧信息和事件标识符(I/U/D)从3个不同触发器调用同一个过程。在您的情况下,正确的解决方案可能取决于您实际已经尝试了什么以及尝试的结果 例如,您可能只需要将您的
UPDATE
语句包含在BEGIN。。。结束
,这就足够了:
create trigger CombinedDetalleInsertTrigger
after insert
on detalle
for each row
begin
update ... where id_p=new.id_p;
update ... where new.id_P = producto.id_P;
update ... where new.Folio= factura.folio;
end;
如中所述
尽管如此,可能并不总是可以使用分隔符,因为这是一条客户机指令,并且并非所有MySQL客户机都支持它。在这种情况下,您可以尝试以下建议:使用allowmultiquerys=true
连接属性或删除最后的代码>(在结束
之后的一个)
create trigger Aumentar_Existencia
after insert
on detalle
for each row
update producto set existencia =if( new.activo = 0, producto.existencia +
new.cantidad,producto.existencia)
where new.id_P = producto.id_P
CREATE TRIGGER aumentar
AFTER insert
on detalle
for each row
update factura set total =
(
select producto.precio * new.cantidad
from producto
where new.id_p=producto.id_p)
where new.Folio= factura.folio;
create trigger CombinedDetalleInsertTrigger
after insert
on detalle
for each row
begin
update ... where id_p=new.id_p;
update ... where new.id_P = producto.id_P;
update ... where new.Folio= factura.folio;
end;
delimiter $$
create trigger CombinedDetalleInsertTrigger
after insert
on detalle
for each row
begin
update ... where id_p=new.id_p;
update ... where new.id_P = producto.id_P;
update ... where new.Folio= factura.folio;
end$$
delimiter ;