【Java Web基础】(十四)Navicat中创建触发器

今天做Java Web的课设,但是我需要用触发器,使得在我插入或修改当前表的unit字段和mount字段时候计算这两个字段的乘积并自动插入当前这个表的allValue字段中。
但是因为数据库是去年学的了,基本已经忘光了。。现在试着重新拾起

我的数据库中的字段如下:
【Java Web基础】(十四)Navicat中创建触发器_第1张图片

具体步骤:

1:点击表上方的触发器,开始编辑
【Java Web基础】(十四)Navicat中创建触发器_第2张图片2:根据所需功能填写触发器语句,这里我需要的是让unit*mount的值赋值给allValue
【Java Web基础】(十四)Navicat中创建触发器_第3张图片但是在这一环报错了。。我的触发器语句之所以没有写UPDATE+具体表名是因为看别人的CSDN里边写:UPDATE+表名后这种写法会造成死循环
【Java Web基础】(十四)Navicat中创建触发器_第4张图片果然加上表名后就成功了,不要信邪。。
【Java Web基础】(十四)Navicat中创建触发器_第5张图片

测试:

插两行数据测试一下:
1、
【Java Web基础】(十四)Navicat中创建触发器_第6张图片
【Java Web基础】(十四)Navicat中创建触发器_第7张图片我的allValue选的不能为Null,去掉这个勾后保存

【Java Web基础】(十四)Navicat中创建触发器_第8张图片插入数据后点击下方的应用更改
【Java Web基础】(十四)Navicat中创建触发器_第9张图片又换了个错误?报错:
【Java Web基础】(十四)Navicat中创建触发器_第10张图片然后我尝试了去掉UPDATE和WHERE还是不可以,仅仅删除WHERE就可以了
【Java Web基础】(十四)Navicat中创建触发器_第11张图片试了各种方法,还是没有用,百度的方法也没有用,有一篇唯一近似的文章仅供参考:1442 - Can’t update table ‘table_name’ in stored function/trigger because it is already used by stat
我是在Java Web中用的数据,可以直接写Java代码来弄,不过创建触发器的步骤大致在上边

你可能感兴趣的:(Java,Web基础)