CONVERTER TRIGGER EM SQL SERVER PARA MYSQL
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
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
Sua trigger grava uma cópia do registro antes de excluir. A sintaxe no MySQL é praticamente a mesma coisa.
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 ;
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 ;
A mensagem de erro é bem clara. Você não pode retornar um [Ô]select * from[Ô] como resultado de uma trigger.
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.
Você pode simplesmente deixar rodar a trigger normalmente e depois buscar da tabela DELETED.
Tópico encerrado , respostas não são mais permitidas