无法运行/执行MySQL触发器
我正在Mysql Workbanch中创建触发器,但无法创建触发器。 有人能帮我吗无法运行/执行MySQL触发器,mysql,mysql-workbench,Mysql,Mysql Workbench,我正在Mysql Workbanch中创建触发器,但无法创建触发器。 有人能帮我吗 DELIMITER $$ create TRIGGER Insert_Test After Delete ON Test FOR EACH ROW BEGIN START TRANSACTION; DECLARE v_ID INT; DECLARE v_Error TINYINT; DECLARE v_AgentID INT; SELECT v_Error = 0; v_ID=Old
DELIMITER $$
create TRIGGER Insert_Test
After Delete ON Test
FOR EACH ROW
BEGIN
START TRANSACTION;
DECLARE v_ID INT;
DECLARE v_Error TINYINT;
DECLARE v_AgentID INT;
SELECT v_Error = 0;
v_ID=Old.id;
BEGIN
DELETE Test2 WHERE id = SELECT id FROM Test where id=v_ID;
Rollback;
SET v_Error = 1;
END
IF v_Error = 0;
THEN
COMMIT;
ELSEIF
v_Error = 1;
THEN
ROLLBACK;
END IF;
END
DELIMITER ;
Sql server触发器
ALTER TRIGGER [dbo].[tr_DelRecordTypeID] ON [dbo].[luRecordType] FOR DELETE
AS
SET NOCOUNT ON
BEGIN TRANSACTION
DECLARE @ID INT, @GroupTypeID INT, @Error BIT, @Msg VARCHAR(500)
SELECT @Error = 0
SELECT @ID = RecordTypeID FROM deleted
SELECT @GroupTypeID = 30
IF EXISTS ( SELECT g.GroupID
FROM luGroup g,
[luGroupDetail] gd
WHERE g.[GroupID] = gd.[GroupID]
AND g.[GroupTypeID] = @GroupTypeID
AND gd.[MemberID] = @ID )
BEGIN
DELETE [agAgent] WHERE [AgentID] = (SELECT TOP 1 AgentID FROM agAgentPayType)
Rollback transaction
SET @Error = 1
END
IF @Error = 0
BEGIN
COMMIT TRANSACTION
END
ELSE
IF @Error = 1
BEGIN
ROLLBACK TRANSACTION
END
这是我试图在mysql workbanch中实现的触发器,请检查我会很感激的, 谢谢
Aman好的,谢谢您的回复,然后请纠正我的错误(v_ID=Old.ID)。这里的语法错误-1)所有声明必须出现在任何其他语句之前2)需要设置赋值,并且没有旧的。插入触发器上的记录如果您说明了要执行的操作,可能会有所帮助,因为此触发器看起来很乱。能否将sql触发器添加为问题的文本请。@P.Salmon,请检查,我已将sql server触发器添加为文本