在mysql中如何查看和修改触发器的代码?请问各位大师,小弟先谢谢了!!!!!!!!! 5

 我来答
知道小爷
2017-07-09 · TA获得超过1489个赞
知道小有建树答主
回答量:368
采纳率:83%
帮助的人:23.9万
展开全部

mysql中,触发器只能查看,无法修改,如果要修改,只能删除原有的触发器,重新创建触发器,以达到修改的目的。

工具:Navicat Premiu

步骤:

1、正确安装Navicat Premiu,并确保连接到指定的数据库。

2、以连接本地数据库localhost中的badkano数据库为例。

3、点击软件上方的查询-新建查询。

4、先执行SHOW TRIGGERS,查看数据库中的触发器。

5、如果要修改触发器,需要删除掉这个触发器。执行语句为:

DROP TRIGGER t_afterdelete_on_tab1;

6、然后重新创建即可。

刺友互
高粉答主

2020-01-11 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:74.6万
展开全部

1、创建数据库表rank并查看其结构,分别使用create和desc命令,可以利用SQL语句。

2、写入以下代码,create table rank_info(rid int(6),rno int(4),rname varchar(20));desc rank_info。

3、创建触发器rank_trigger,使用create trigger命令。

4、创建触发器后,可以查看触发器,使用show triggers命令。

5、向数据库表rank里插入一条记录,使用insert into进行插入记录。

6、查看触发器可以利用desc命令,删除触发器利用命令drop。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淡淡的雷人生活
2019-02-18 · TA获得超过2399个赞
知道小有建树答主
回答量:440
采纳率:87%
帮助的人:73.3万
展开全部

在Mysql中,如若需要查看数据库中已有的触发器,可以使用 SHOW TRIGGERS 语句。

SHOW TRIGGERS;

修改触发器的代码需要先删除然后重新创建一个新的

删除触发器

和删除数据库、删除表格一样,删除触发器的语法如下:

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name

创建触发器
在MySQL中,创建触发器语法如下:

代码如下:

CREATE TRIGGER trigger_name
trigger_time
trigger_event ON tbl_name
FOR EACH ROW
trigger_stmt

其中:

trigger_name:标识触发器名称,用户自行指定;
trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;
trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;
tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;
trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句。

由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE。

另外有一个限制是不能同时在一个表上建立2个相同类型的触发器,因此在一个表上最多建立6个触发器。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-11
展开全部

查看和修改触发器的代码

SHOW CREATE TRIGGER   触发器名称 \G


下面是一个例子:

--测试表
CREATE TABLE test_trigger_table (
    id     INT,
    name   VARCHAR(10),
    val    INT
);



DELIMITER //

CREATE TRIGGER BeforeInsertTest
  BEFORE INSERT ON test_trigger_table
FOR EACH ROW
BEGIN
  SET new.val = '100';
END;
//


DELIMITER ;


mysql> SHOW CREATE TRIGGER BeforeInsertTest\G
*************************** 1. row ***************************
               Trigger: BeforeInsertTest
              sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTI
TUTION
SQL Original Statement: CREATE DEFINER=`root`@`localhost` TRIGGER BeforeInsertTe
st
  BEFORE INSERT ON test_trigger_table
FOR EACH ROW
BEGIN
  SET new.val = '100';
END
  character_set_client: latin1
  collation_connection: latin1_swedish_ci
    Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

mysql>



至于修改。  你可以先 DROP 掉, 然后再重新创建。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式