I made this procedure in MySQL to change a record only half of the table but it produces an inexplicable error:
It seems that trouble is in%% with% refusing to accept a variable.
In SQLServer I used LIMIT
to solve the problem, but in MySQL I can not find a solution. Can anyone help me?
BEGIN
DECLARE CodigoNovaLista INT;
DECLARE QuantidadeTotal INT;
DECLARE QuantidadeListaNova INT;
DECLARE QuantidadeListaAtual INT;
DECLARE EXIT HANDLER FOR SQLEXCEPTION ROLLBACK;
DECLARE EXIT HANDLER FOR SQLWARNING ROLLBACK;
START TRANSACTION;
SELECT QuantidadeTotal = TotalEmails FROM tabelalistas WHERE IDLista = @IDListaAtual;
SET QuantidadeListaAtual = QuantidadeTotal /2;
SET QuantidadeListaNova = QuantidadeTotal - QuantidadeListaAtual;
INSERT INTO tabelalistas (Nome, IDCliente) VALUES(@NovoNome, @IDCliente);
SELECT CodigoNovaLista = LAST_INSERT_ID();
UPDATE tabelaemailsimportados SET IDLista=CodigoNovaLista WHERE IDLista = @IDListaAtual LIMIT QuantidadeListaNova;
UPDATE tabelalistas SET TotalEmails=QuantidadeListaAtual WHERE IDLista = @IDListaAtual ;
UPDATE tabelalistas SET TotalEmails=QuantidadeListaNova WHERE IDLista = CodigoNovaLista ;
COMMIT;
END