本人sql新手,请问一下,为什么我以下这段代码执行不成功?
delimiter ||
drop trigger if exists deletecomment||
create trigger deletecomment after insert on borrow for each row
begin
SET @result = (select `reader-id` from `loss-reporting` where
`loss-reporting`.`reader-id` = new.`reader-id`);
if (new.`reader-id` = @result) THEN
rollback
end if
end;||
delimiter ;我想实现的触发器功能是在往borrow里插入一条记录后,检测reader-id是否存在于loss-reporting这个表中,如果存在就回滚,撤销刚才在borrow里的插入,执行时navicat提示我
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end if;
end'请教各位高人,这种修改本表的触发器该如何写?mysql触发器rollback
delimiter ||
drop trigger if exists deletecomment||
create trigger deletecomment after insert on borrow for each row
begin
SET @result = (select `reader-id` from `loss-reporting` where
`loss-reporting`.`reader-id` = new.`reader-id`);
if (new.`reader-id` = @result) THEN
rollback
end if
end;||
delimiter ;我想实现的触发器功能是在往borrow里插入一条记录后,检测reader-id是否存在于loss-reporting这个表中,如果存在就回滚,撤销刚才在borrow里的插入,执行时navicat提示我
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end if;
end'请教各位高人,这种修改本表的触发器该如何写?mysql触发器rollback
begin
SET @result = (select `reader-id` from `loss-reporting` where
`loss-reporting`.`reader-id` = new.`reader-id`);
if (new.`reader-id` = @result) THEN
rollback;
end if ;
end;
MySQL 中如何在触发器里中断记录的插入或更新?
MySQL 不象其它有些数据库可以在触发器中抛出异常来中断当然触发器的执行以阻止相应的SQL语句的执行。在MySQL的目录版本中还无法直接抛出异常。这样我们如何实现呢? 下面是一种实现的方法。思路就是想办法在触发器中利用一个出错的语句来中断代码的执行。 mysql> create table t_control(id int primary key);Query OK, 0 row...
谢谢啦,这个办法好,学习了,不过mysql在完整性这块有点略缺力的感觉,不能抛异常来中断当前触发器的执行,也不支持check约束。。让我有点小郁闷。。
rollback;
end if
少个引号