Jump to content

gmadeira

Members
  • Content count

    3
  • Joined

  • Last visited

Community Reputation

0 Comum

About gmadeira

  1. gmadeira

    Triggers

    Executing: DROP TRIGGER IF EXISTS `bailledados`.`trg_entradarm_entrada`; DELIMITER $$ USE `bailledados`$$ CREATE DEFINER=`root`@`localhost` TRIGGER `bailledados`.`trg_entradarm_entrada` BEFORE INSERT ON `entradarm` FOR EACH ROW BEGIN declare codVendedor int; declare codArmar int; select codVendedor codArmar from prodvdmat; IF (codVendedor <> new.codVendedor and codArmar <> new.codArmar) then insert into prodvdmat(codVendedor, codArmar, quantidade, valor, datacompra) values (new.codVendedor, new.codArmar, new.quantidade, new.valor, now()); else UPDATE prodvdmat SET quantidade = quantidade + new.Quantidade, valor = valor + new.valor WHERE codVendedor = new.codVendedor and codArmar = new.codArmar; end if; end$$ DELIMITER ; Operation failed: There was an error while applying the SQL script to the database. ERROR 1415: Not allowed to return a result set from a trigger SQL Statement: CREATE DEFINER=`root`@`localhost` TRIGGER `bailledados`.`trg_entradarm_entrada` BEFORE INSERT ON `entradarm` FOR EACH ROW BEGIN declare codVendedor int; declare codArmar int; select codVendedor codArmar from prodvdmat; IF (codVendedor <> new.codVendedor and codArmar <> new.codArmar) then insert into prodvdmat(codVendedor, codArmar, quantidade, valor, datacompra) values (new.codVendedor, new.codArmar, new.quantidade, new.valor, now()); else UPDATE prodvdmat SET quantidade = quantidade + new.Quantidade, valor = valor + new.valor WHERE codVendedor = new.codVendedor and codArmar = new.codArmar; end if; end
  2. gmadeira

    Triggers

    Boa tarde, tenho 2 tabelas "prodvdarm" que cadastro produtos de ema empresa com: codVendedor - int, codArmar - int, quantidade int, valor - numeric 12,2, dataentra - data tabela "entradarm" codVendedor - int, codArmar - int, quantidade int, valor - numeric 12,2, Conheço pouco de triggers então pelos exemplos tentei fazer esta que te enviei, preciso de uma para entrar com os dados checar se existe este código vendedor e código armarinho, existindo atualiza(update) a quantidade e o valor - se não existir entra com novos dados(insert) fia assim mais ta dando erro CREATE DEFINER=`root`@`localhost` TRIGGER `bailledados`.`trg_entradarm_entrada` BEFORE INSERT ON `entradarm` FOR EACH ROW BEGIN declare codVendedor int; declare codArmar int; select codVendedor codArmar from prodvdmat; IF (codVendedor <> new.codVendedor and codArmar <> new.codArmar) then insert into prodvdmat(codVendedor, codArmar, quantidade, valor, datacompra) values (new.codVendedor, new.codArmar, new.quantidade, new.valor, now()); else UPDATE prodvdmat SET quantidade = quantidade + new.Quantidade, valor = valor + new.valor WHERE codVendedor = new.codVendedor and codArmar = new.codArmar; end if; END
  3. gmadeira

    Trigger

    Boa tarde, Tenho a seguinte tabela: CREATE TABLE prodvdedor (codPrdvdor int(10) NOT NULL AUTO_INCREMENT,codVendedor int(11) NOT NULL,codTecido int(11) NOT NULL,codCor int(11) NOT NULL,medida decimal(10,2) DEFAULT NULL,stockMedidas decimal(10,2) DEFAULT NULL,peso decimal(10,4) DEFAULT NULL,stockPeso decimal(10,4) DEFAULT NULL,dataCompra date NOT NULL,valor decimal(10,2) NOT NULL,PRIMARY KEY (codPrdvdor),KEY PK_prodvdedor_vendededor_idx (codVendedor),KEY Pk_prodvdedor_tecidos_idx (codTecido),KEY Pk_prodvdedor_cores_idx (codCor),CONSTRAINT Pk_prodvdedor_cores FOREIGN KEY (codCor) REFERENCES cores (codCor) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT Pk_prodvdedor_tecidos FOREIGN KEY (codTecido) REFERENCES tecidos (codTecido) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT PK_prodvdedor_vendedores FOREIGN KEY (codVendedor) REFERENCES vendedores(codVendedor) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;Pciso criar uma trigger preciso criar uma trigger para atualizar os campos stockMedidas e stockPeso, quando digito os dados ela procura se tem outra informação com os campos pedidos e atualiza, fiz da seguinte maneira: CREATE DEFINER=`root`@`localhost` TRIGGER `bailledados`.`trg_AtualizarProdVendor` BEFORE INSERT ON `prodvdedor` FOR EACH ROW BEGIN SET @stockAntigo = (SELECT stockMedidas FROM prodvdedor WHERE codVendedor=new.codVendedor and codTecido=new.codTecido and codCor=new.codCor); UPDATE prodvdedor SET stockMedidas=@stockAntigo+new.medida WHERE codVendedor=new.codVendedor and codTecido=new.codTecido and codCor=new.codCor; SET @stockAntigo1 = (SELECT stockPeso FROM prodvdedor WHERE codVendedor=new.codVendedor and codTecido=new.codTecido and codCor=new.codCor); UPDATE prodvdedor SET stockPeso=@stockAntigo1+new.peso WHERE codVendedor=new.codVendedor and codTecido=new.codTecido and codCor=new.codCor; SET @valorAntigo = (SELECT valor FROM prodvdedor WHERE codVendedor=new.codVendedor and codTecido=new.codTecido and codCor=new.codCor); UPDATE prodvdedor SET valor=@valorAntigo1+new.valor WHERE codVendedor=new.codVendedor and codTecido=new.codTecido and codCor=new.codCor; END Só que não funciona da erro: insert into bailledados.prodvdedor (codCor, codTecido, codVendedor, medida, stockMedidas, peso, stockPeso, dataCompra, valor) values (?, ?, ?, ?, ?, ?, ?, ?, ?) WARN: SQL Error: 1442, SQLState: HY000 ERROR: Can't update table 'prodvdedor' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. Informações: could not execute statement
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.