在看mysql必知必会这本书,在玩触发器的时候,根据书上的例子创建触发器,但是老是返回错误。
mysql-> CREATE TRIGGER neworder AFTER INSERT ON orders FOR EACH ROW SELECt new.order_num;
返回错误:ERROR 1415 (0A000): Not allowed to return a result set from a trigger;
请各位大牛帮我看看,多谢了。
mysql必知必会
答案:4 悬赏:60 手机版
解决时间 2021-03-15 03:05
- 提问者网友:niaiwoma
- 2021-03-14 09:33
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-03-14 10:56
CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.
{ BEFORE | AFTER } --触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE } --同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。
ON <表名称> --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句> --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。
{ BEFORE | AFTER } --触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE } --同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。
ON <表名称> --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句> --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。
全部回答
- 1楼网友:玩家
- 2021-03-14 12:56
就好比你开车一样,sql就相当于你的驾驶技术,而mysql就相当于你的车。而你会驾驶技术不一定能开好所有的车,因为每种车都会有自己的不同之处。就好比mysql和oracle与sqlserver的不同之处一样。
- 2楼网友:平生事
- 2021-03-14 12:35
CREATE TRIGGER neworder
AFTER INSERT ON orders#在oder插入数据后运行 sql 语句
FOR EACH ROW
SELECT new.order_num;#这里神木意思?输出吗?我没试过触发器里面是否支持输出。建议你再去看mysql 储存过程。
- 3楼网友:撞了怀
- 2021-03-14 12:26
Mysql完全手册
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯