今天做Java Web的课设,但是我需要用触发器,使得在我插入或修改当前表的unit字段和mount字段时候计算这两个字段的乘积并自动插入当前这个表的allValue字段中。
但是因为数据库是去年学的了,基本已经忘光了。。现在试着重新拾起
我的数据库中的字段如下:
具体步骤:
1:点击表上方的触发器,开始编辑
2:根据所需功能填写触发器语句,这里我需要的是让unit*mount的值赋值给allValue
但是在这一环报错了。。我的触发器语句之所以没有写UPDATE+具体表名是因为看别人的CSDN里边写:UPDATE+表名后这种写法会造成死循环
果然加上表名后就成功了,不要信邪。。
测试:
插两行数据测试一下:
1、
我的allValue选的不能为Null,去掉这个勾后保存
插入数据后点击下方的应用更改
又换了个错误?报错:
然后我尝试了去掉UPDATE和WHERE还是不可以,仅仅删除WHERE就可以了
试了各种方法,还是没有用,百度的方法也没有用,有一篇唯一近似的文章仅供参考:1442 - Can’t update table ‘table_name’ in stored function/trigger because it is already used by stat
我是在Java Web中用的数据,可以直接写Java代码来弄,不过创建触发器的步骤大致在上边