Mysql入门MySQL触发器使用详解
《Mysql入门MySQL触发器使用详解》要点: MYSQL学习MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. MYSQL学习创建触发器 CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt MYSQL学习其中: MYSQL学习trigger_name:标识触发器名称,用户自行指定; MYSQL学习由此可见,可以建立6种触发器,即:BEFORE INSERT、BEFORE UPDATE、BEFORE DELETE、AFTER INSERT、AFTER UPDATE、AFTER DELETE. MYSQL学习另外有一个限制是不能同时在一个表上建立2个相同类型的触发器,因此在一个表上最多建立6个触发器. MYSQL学习trigger_event 详解 MYSQL学习LOAD DATA 语句用于将一个文件装入到一个数据表中,相当与一系列的 INSERT 操作. MYSQL学习REPLACE 语句一般来说和 INSERT 语句很像,只是在表中有 primary key 或 unique 索引时,如果插入的数据和原来 primary key 或 unique 索引一致时,会先删除原来的数据,然后增加一条新数据,也就是说,一条 REPLACE 语句有时候等价于一条. MYSQL学习INSERT 语句,有时候等价于一条 DELETE 语句加上一条 INSERT 语句. MYSQL学习INSERT 型触发器:插入某一行时激活触发器,可能通过 INSERT、LOAD DATA、REPLACE 语句触发; MYSQL学习BEGIN … END 详解 MYSQL学习BEGIN MYSQL学习这时就会用到 DELIMITER 命令(DELIMITER 是定界符,分隔符的意思),它是一条命令,不需要语句结束标识,语法为: MYSQL学习一个完整的创建触发器示例 DELIMITER $ create trigger tri_stuInsert after insert on student for each row begin declare c int; set c = (select stuCount from class where classID=new.classID); update class set stuCount = c + 1 where classID = new.classID; end$ DELIMITER ; MYSQL学习变量详解 MYSQL学习即其它语句之前,语法如下: MYSQL学习DECLARE var_name[,...] type [DEFAULT value] MYSQL学习对变量赋值采用 SET 语句,语法为: MYSQL学习SET var_name = expr [,var_name = expr] ... MYSQL学习NEW 与 OLD 详解 MYSQL学习上述示例中使用了NEW关键字,和 MS SQL Server 中的 INSERTED 和 DELETED 类似,MySQL 中定义了 NEW 和 OLD,用来表示 MYSQL学习触发器的所在表中,触发了触发器的那一行数据. MYSQL学习查看触发器 MYSQL学习和查看数据库(show databases;)查看表格(show tables;)一样,查看触发器的语法如下: MYSQL学习SHOW TRIGGERS [FROM schema_name]; MYSQL学习不必先“USE database_name;”了. MYSQL学习删除触发器 MYSQL学习和删除数据库、删除表格一样,删除触发器的语法如下: MYSQL学习DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name MYSQL学习触发器的执行顺序 MYSQL学习我们建立的数据库一般都是 InnoDB 数据库,其上建立的表是事务性表,也就是事务安全的.这时,若SQL语句或触发器执行失败,MySQL 会回滚事务,有: MYSQL学习①如果 BEFORE 触发器执行失败,SQL 无法正确执行. MYSQL学习小伙伴们是否对mysql的触发器的使用有所了解了呢,如有疑问,就给我留言吧,大家共同进步. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |