我需要我的mysql数据库在一个特定的列中生成一些值的总和。为此,我使用了触发器语句,但mysql给了我一个错误:
mysql错误:#1142-对于表wpŠwpdatatableŠ8,向用户“”拒绝触发器通信
触发器如下:
CREATE TRIGGER SumPliche AFTER INSERT ON wp_wpdatatable_8 FOR EACH ROW UPDATE wp_wpdatatable_8 SET sommapliche = tricipite + addome + soprailiaca + sottoscapolare + ascellare + pettorale + coscia
我该怎么做?谢谢
3条答案
按热度按时间aij0ehis1#
如果我使用
1064-sql查询中靠近'-5478r34b.*到'\u sso\u 67c5vh1'@'10.3.157.568''linea 1的语法错误
或
将“wordpress-3236c57b”上的触发器*授予“\u sso\u 35fd3dc2”@“10.3.156.140”
1064-“wordpress-5478r34b”附近的sql查询中存在语法错误,*到“\u sso\u 67c5vh1”@“10.3.157.568”linea 1
或
1064-“wordpress”-“5478r34b”附近的sql查询中存在语法错误,*到“\u sso\u 67c5vh1”@“10.3.157.568”linea 1
不管我做什么,它都会给我一个语法错误。
一般来说,我要做的是在数据库中添加新数据时自动求和。有没有更简单的方法?
nhn9ugyo2#
这里的问题似乎是您的用户对数据库的权限
wp_wpdatatable_8
.要为特定用户和数据库授予触发器权限,可以使用以下命令:
哪里
<DATABASE>
指包含wp_wpdatatable_8
table。<USER>
试图发出CREATE TRIGGER
命令。<DATABASE HOST>
用户从中访问数据库的数据库主机。如果在本地运行,可以使用localhost
.刷新特权之后,创建触发器应该可以正常工作。
有关更多信息,请查看
GRANT
mysql.documentation上的语法lfapxunr3#
您对正在使用的数据库缺少触发器权限。
我做测试时犯了这个错误。创建测试用户:
现在尝试创建一个触发器作为此用户:
我也认为你的触发器可能不会像你想象的那样,所以你也没有创造它。
如果我在测试数据库中创建此触发器(作为具有触发器权限的其他用户),然后尝试插入一行:
您可能只想在插入的行中设置值。如果是这样,您将引用当前插入的行
NEW.*
语法:你也必须使用
BEFORE INSERT
如果要在插入行之前更改行中的值。如果你使用AFTER INSERT
,太晚了。现在起作用了: