我想知道在Navicat for MySQL 中怎么创建触发器
答案:5 悬赏:30
解决时间 2021-01-26 01:25
- 提问者网友:捧腹剧
- 2021-01-25 01:35
我想知道在Navicat for MySQL 中怎么创建触发器
最佳答案
- 二级知识专家网友:一把行者刀
- 2021-01-25 02:29
将delimiter ; 更改为delimiter //
如下:
mysql> delimiter //
mysql> create trigger insertArticle_Trigger after insert on article1
-> for each row
-> begin
-> update board1 set articleCount = articleCount+1 where id=new.bid;
-> end;
-> //
执行如下语句,可查看到board1表articleCount被更改:
mysql> delimiter ;
mysql> insert into article1 values(1);
其中delimiter作用:
告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束, 那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。使用delimiter //,这样只有当//出现之后,mysql解释器才会执行这段语句。详见
如下:
mysql> delimiter //
mysql> create trigger insertArticle_Trigger after insert on article1
-> for each row
-> begin
-> update board1 set articleCount = articleCount+1 where id=new.bid;
-> end;
-> //
执行如下语句,可查看到board1表articleCount被更改:
mysql> delimiter ;
mysql> insert into article1 values(1);
其中delimiter作用:
告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束, 那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。使用delimiter //,这样只有当//出现之后,mysql解释器才会执行这段语句。详见
全部回答
- 1楼网友:时间的尘埃
- 2021-01-25 06:24
Navicat for MySQL 中,选中数据表—鼠标右键—设计表,有一个触发器的设置,然后:
设置一个触发器名称,触发选择After,勾中插入
在下面的框中:(仅是举例)
BEGIN
insert into transfer(id,a1,a2,cz,qtime) values(New.id,values1,values2,'已点',New.ordertime)
END
追问:我在order表中设置触发器的时候是这样写的:(kitchen_transfer_dish表就是我上面提过transfer表)
BEGIN
insert into kitchen_transfer_dish(id,orderdishid,cz,uptime,drawtime,name) values(New.id,New.orderdishid,'已点',New.ordertime,New.drawtime,New.name)
END
可是出错了:
设置一个触发器名称,触发选择After,勾中插入
在下面的框中:(仅是举例)
BEGIN
insert into transfer(id,a1,a2,cz,qtime) values(New.id,values1,values2,'已点',New.ordertime)
END
追问:我在order表中设置触发器的时候是这样写的:(kitchen_transfer_dish表就是我上面提过transfer表)
BEGIN
insert into kitchen_transfer_dish(id,orderdishid,cz,uptime,drawtime,name) values(New.id,New.orderdishid,'已点',New.ordertime,New.drawtime,New.name)
END
可是出错了:
- 2楼网友:患得患失的劫
- 2021-01-25 05:57
我没用过navicat for mysql 应该和其他的差不多吧
- 3楼网友:风格不统一
- 2021-01-25 04:30
insert into kitchen_transfer_dish(id,orderdishid,cz,uptime,drawtime,name) values(New.id,New.orderdishid,'已点',New.ordertime,New.drawtime,New.name)
这个语句后面加一个";"就行了,注意要英文的‘;’
这个语句后面加一个";"就行了,注意要英文的‘;’
- 4楼网友:酒者煙囻
- 2021-01-25 03:44
将delimiter ; 更改为delimiter //
如下:
mysql> delimiter //
mysql> create trigger insertArticle_Trigger after insert on article1
-> for each row
-> begin
-> update board1 set articleCount = articleCount+1 where id=new.bid;
-> end;
-> //
执行如下语句,可查看到board1表articleCount被更改:
mysql> delimiter ;
mysql> insert into article1 values(1);
其中delimiter作用:
告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束, 那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。使用delimiter //,这样只有当//出现之后,mysql解释器才会执行这段语句。详见
如下:
mysql> delimiter //
mysql> create trigger insertArticle_Trigger after insert on article1
-> for each row
-> begin
-> update board1 set articleCount = articleCount+1 where id=new.bid;
-> end;
-> //
执行如下语句,可查看到board1表articleCount被更改:
mysql> delimiter ;
mysql> insert into article1 values(1);
其中delimiter作用:
告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束, 那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。使用delimiter //,这样只有当//出现之后,mysql解释器才会执行这段语句。详见
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯