在一个项目的测试用例中,如果某个字段满足某个条件之一,我必须删除记录。最简单的方法似乎是一个简单的触发器:
delimiter $$
drop trigger w_leb_go $$
create trigger w_leb_go after update on test
for each row
begin
set @stat=NEW.res;
set @id=NEW.id;
IF @stat=3 THEN
delete from test where id=@id;
END IF;
end$$
delimiter ;
但我怀疑发生了错误:
update test set res=3 where id=1; ERROR 1442 (HY000): 因为语句已被调用存储函数/触发器使用,无法在存储函数/触发器中更新表“test”。
如果只有访问数据库的权限,还有什么其他方法可以实现?我的意思是我不应该更改被测试的应用程序。