CONVERTER TRIGGER EM SQL SERVER PARA MYSQL

KELLY 03/06/2016 18:04:51
#463017
Olá a todos!

Tenho uma trigger que criei em SQL Server que faz backup de registros deletados inserindo em uma tabela de histórico, está funcionando tudo perfeitamente. Porém, preciso fazer a mesma trigger em MySQL. Alguém poderia me dar essa ajudinha?

Segue o código da Trigger abaixo

Grata

CREATE TRIGGER TG_DELETE_BACKUP
ON dbo.Pessoa
FOR DELETE
AS
BEGIN
INSERT INTO Historico(BusinessEntityID,
FirstName,
MiddleName,
LastName,
Suffix,
PersonType,
Title,
ModifiedDate)
SELECT BusinessEntityID,
FirstName,
MiddleName,
LastName,
Suffix,
PersonType,
Title,
ModifiedDate
FROM DELETED;

SELECT * FROM DELETED;
END

KERPLUNK 03/06/2016 18:41:49
#463021
Resposta escolhida
Sua trigger grava uma cópia do registro antes de excluir. A sintaxe no MySQL é praticamente a mesma coisa.
KELLY 03/06/2016 19:26:51
#463024
Eu estou tentando e está dando erro Not allowed to return a result set from a trigger

DROP TRIGGER IF EXISTS TB_DELETE_BACKUP;
DELIMITER //
CREATE TRIGGER TB_DELETE_BACKUP BEFORE DELETE
ON Produto
FOR EACH ROW
BEGIN
INSERT INTO dbo.Historico(BusinessEntityID,
FirstName,
MiddleName,
LastName,
Suffix,
PersonType,
Title,
ModifiedDate)
SELECT BusinessEntityID,
FirstName,
MiddleName,
LastName,
Suffix,
PersonType,
Title,
ModifiedDate
FROM DELETED;
SELECT * FROM DELETED;
END//
DELIMITER ;
KERPLUNK 03/06/2016 19:59:08
#463025
A mensagem de erro é bem clara. Você não pode retornar um [Ô]select * from[Ô] como resultado de uma trigger.
KELLY 03/06/2016 20:06:54
#463026
Esse é o problema, quero adaptar para funcionar da mesma forma como o outro em SQL Server, ele retorna um SELECT e fazer um INSERT. Por isso estou precisando de ajuda para converter essa TRIGGER para MySQL.
KERPLUNK 03/06/2016 21:55:22
#463036
Você pode simplesmente deixar rodar a trigger normalmente e depois buscar da tabela DELETED.
Tópico encerrado , respostas não são mais permitidas