Galera fiz uma procedure com Update e Insert junto. Mas o problema é que ele faz update e insere um novo produto no banco, ou faz somente o update
Segue a tabela de produto do meu Banco de dados:
create table Produto (
CodProduto int primary key auto_increment,
NomeProduto varchar(100) not null,
ValorProduto decimal(10,2) not null,
MargemLucro decimal(10,2) not null,
ValorVendaProduto decimal(10,2) not null,
QntProduto int,
CodFornecedor int not null,
ImagemProduto varchar(255) not null,
QntParcelas int not null,
ValorParcela decimal(10,2) not null,
DataCadastro Timestamp default current_timestamp,
Descricao varchar(255),
Categoria varchar(25) not null
);
E aqui esta a minha procedure:
DELIMITER $$
CREATE PROCEDURE sp_products_save (
pcodproduto INT,
pnomeproduto VARCHAR(200),
pvalorproduto decimal(10,2),
pmargemlucro decimal(10,2),
pvalorvenda decimal(10,2),
pquantidade INT,
pcodfornecedor INT,
pimgproduto VARCHAR(255),
pqntparcelas INT,
pvalorparcela DECIMAL(10,2),
pdescricao VARCHAR(255),
pcategoria VARCHAR(25)
)
BEGIN
DECLARE pcodproduto INT;
SELECT CodProduto INTO pcodproduto FROM produto WHERE CodProduto = pcodproduto;
IF pcodproduto > 0 THEN
UPDATE produto
SET
NomeProduto = pnomeproduto,
ValorProduto = pvalorproduto,
MargemLucro = pmargemlucro,
ValorVendaProduto =pvalorvenda,
QntProduto = pquantidade,
CodFornecedor = pcodfornecedor,
ImagemProduto = pimgproduto,
QntParcelas = pqntparcelas,
ValorParcela = pvalorparcela,
DataCadastro = NOW(),
Descricao = pdescricao,
Categoria = pcategoria WHERE CodProduto = pcodproduto;
ELSE
INSERT INTO Produto (NomeProduto, ValorProduto, MargemLucro, ValorVendaProduto,
QntProduto, CodFornecedor, ImagemProduto, QntParcelas, ValorParcela,
Descricao,Categoria)
VALUES(pnomeproduto, pvalorproduto, pmargemlucro, pvalorvenda, pquantidade,
pcodfornecedor, pimgproduto, pqntparcelas, pvalorparcela, pdescricao, pcategoria);
SET pcodproduto = LAST_INSERT_ID();
END IF;
SELECT * FROM produto WHERE CodProduto = pcodproduto;
END$$
delimiter ;
Se precisar do codigo em PHP eu edito a pergunta