`

MySQL触发器的创建与删除

阅读更多

下面的文章主要描述的是MySQL触发器的正确创建步骤,MySQL触发器的删除,你如果对MySQL触发器的正确创建步骤,MySQL触发器的删除有兴趣的话你就可以点击以下的文章进行观看了。

1、创建MySQL触发器:

语法:

  1. CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name   
  2. FOR EACH ROW   
  3. BEGIN   
  4. trigger_stmt   
  5. END;   
  6. CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name  
  7. FOR EACH ROW   
  8. BEGIN  
  9. trigger_stmt  
  10. END;  

 

例子

 

 

  1. CREATE TRIGGER SetUserHome after insert ON users   
  2. FOR EACH ROW   
  3. BEGIN   
  4. update `users` set homeLocationX = 128,  
  5. homeLocationY=128, homeLocationZ=30   
  6. where uuid = NEW.uuid  
  7. END  

 

以上的例子是错误的, 让本表进行触发时进行更新会让程序进入死循环。

 

系统会报这样的错误:it is already used by statement which invoked this stored function/trigger.

应该改成以下语句:

  1. CREATE TRIGGER SetUserHome before insert ON users   
  2. FOR EACH ROW   
  3. BEGIN   
  4. set New.homeLocationX = 128;  
  5. set New.homeLocationY = 128;  
  6. set New.homeLocationZ=30;   
  7. END  

 

大写的为关键字

 

trigger_name:触发器的名字,我常用的命名规则t_name_tableName_(b|a)(i|u|d),t:MySQL触发器标识,name:英文名,tableName:表名,b(BEFORE):标识是触发事件之前,a(AFTER):标识触发事件之后,i(insert):标识insert事件,u(update):标识update事件,d(delete):标识delete事件;

 

trigger_time:触发时间(BEFORE或AFTER)

 

trigger_event:事件名(insert或update或delete)

 

tbl_name:表名(必须是永久性表)

 

trigger_stmt:执行语句(可以是复合语名),使用别名OLD和NEW,能够引用与触发程序相关的表中的列。

 

2、删除解发器

语法:

  1. DROP TRIGGER [schema_name.]trigger_name;  

 

注意:以上操作均需SUPER权限

 

示例:

  1. DROP TRIGGER t_wiley_hotelComment_bu;   
  2. delimiter //   
  3. CREATE TRIGGER t_wiley_hotelComment_bu BEFORE UPDATE ON hotel_comment   
  4. FOR EACH ROW   
  5. BEGIN   
  6. IF OLD.ispass=0 && NEW.ispass=1 THEN   
  7. UPDATE hotel_info SET sumcommentsumcomment=sumcomment+1,

     

    sumconsumesumconsume=sumconsume+NEW.consume,sumservicesumservice=sumservice+NEW.service, 

     

    sumroomsumroom=sumroom+NEW.room,sumentironsumentiron=sumentiron+NEW.entironment,

     

    totaltotal=total+(NEW.service+NEW.room+NEW.entironment) WHERE hotel_id=NEW.hotel_id;   
  8. ELSEIF OLD.ispass=1 && NEW.ispass=0 THEN   
  9. UPDATE hotel_info SET sumcommentsumcomment=sumcomment-1,

     

    sumconsumesumconsume=sumconsume-NEW.consume,sumservicesumservice=sumservice-NEW.service, 

     

    sumroomsumroom=sumroom-NEW.room,sumentironsumentiron=sumentiron-NEW.entironment,

     

    totaltotal=total-(NEW.service+NEW.room+NEW.entironment) WHERE hotel_id=NEW.hotel_id;   
  10. END IF;   
  11. END;//   
  12. delimiter ;  

 

以上的相关内容就是对MySQL触发器的使用的介绍,望你能有所收获。

分享到:
评论

相关推荐

    触发器创建与管理实验 .docx

    触发器创建与管理实验报告 在本实验中,我们将学习触发器的概念、类型、功能和工作原理,并掌握创建、更改、删除触发器的方法。此外,我们还将学习如何利用触发器维护数据完整性。 一、触发器概念和类型 触发器是...

    mysql触发器之触发器的增删改查操作示例

    MySQL触发器在实际应用中扮演着重要角色,比如在数据插入、更新或删除前后的验证、审计日志记录、数据同步和计算复杂业务逻辑等场景。触发器的使用应该谨慎,因为它们可能会增加数据库的复杂性,并可能导致性能问题...

    mysql触发器+存储过程

    文件“MySQL存储过程.pdf”和“OReilly.MySQL.Stored.Procedure.Programming.rar”可能会提供关于如何创建、调用和管理MySQL存储过程的详细指南,而“MySQL触发器.rar”则可能包含触发器的创建、使用和优化方面的...

    实验九MySQL的触发器.pdf

    通过这个实验,学生可以深入理解MySQL触发器的工作原理,以及如何在实际环境中应用它们来增强数据库的管理和安全性。实验报告应包含实验步骤、观察结果、问题分析和总结,以巩固理论知识和实践技能。

    mysql触发器使用实例

    MySQL触发器是数据库管理系统中的一个重要特性,它允许在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这为数据库的业务规则提供了强大的支持,可以确保数据的一致性和完整性。以下是...

    MySQL触发器基本用法详解【创建、查看、删除等】

    一、MySQL触发器创建: 1、MySQL触发器的创建语法: CREATE [DEFINER = { 'user' | CURRENT_USER }]  TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW [trigger_order] trigger_...

    MYSQL触发器在PHP项目中用来做信息备份、恢复和清空

    - 要恢复已删除的信息,可以创建一个触发器,在从`employeebackup`表中删除记录时,同时将这些记录插入回`employee`表。 - 这个恢复过程可能涉及到一个AFTER DELETE触发器,它在从备份表中删除记录后立即执行,将...

    mysql触发器

    Mysql触发器的例子,包括,创建,删除,修改,三种触发器的实例

    mysql触发器.pdf

    【MySQL触发器详解】 MySQL触发器是数据库管理系统中的一种重要特性,它允许用户在特定的数据库操作(如INSERT、UPDATE或DELETE)发生之前或之后自动执行预定义的SQL语句。这种特性使得数据库能实现更复杂的业务...

    mysql 触发器创建与使用方法示例

    MySQL触发器是数据库管理系统提供的一种机制,允许在特定的数据操作(如INSERT、UPDATE或DELETE)发生前后自动执行一些预定义的SQL语句。这使得数据库能够实现更复杂的业务逻辑,而不必在应用程序代码中处理这些逻辑...

    mysql触发器简介、创建触发器及使用限制分析

    本文实例讲述了mysql触发器简介、创建触发器及使用限制。分享给大家供大家参考,具体如下: 简介 SQL触发器是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器,例如插入,...

    mysql触发器之创建多个触发器操作实例分析

    MySQL触发器是数据库管理系统中的一种重要机制,它允许在特定的数据库操作(如INSERT、UPDATE、DELETE)发生之前或之后自动执行预定义的SQL语句。在MySQL 5.7.2版本之前,每个表只能为特定事件(如BEFORE UPDATE或...

    触发器创建与管理实验.docx

    触发器创建与管理实验报告 触发器是数据库系统中的一种机制,用于自动执行某些操作,以维护数据的完整性和一致性。触发器可以在表格中插入、更新或删除数据时自动执行,实现了数据的实时监控和控制。本实验报告将...

    第12章MySQL触发器与事件.docx

    MySQL触发器和事件是数据库管理系统中的重要特性,用于在特定数据操作发生时自动执行预定义的任务,以此实现数据的完整性、一致性以及业务规则的自动执行。以下是对这些知识点的详细解释: 1. **触发器(Triggers)...

    MySQL 触发器的基础操作(六)

    触发器的操作包含创建、查看、删除。   触发器是数据库对象之一,该对象与编程语言 中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发、激活从而实现...

    mysql触发器原理与用法实例分析

    MySQL触发器是数据库管理系统中的一种重要机制,它允许在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。触发器主要用于实现数据完整性约束,业务规则的强制,以及数据的自动处理。以下...

    MySQL 触发器定义与用法简单实例

    本文实例讲述了MySQL 触发器定义与用法。分享给大家供大家参考,具体如下: 语法 CREATE TRIGGER 触发器名称 –触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. { ...

    MySQL触发器在电子商城系统中的应用.pdf

    "MySQL触发器在电子商城系统中的应用" MySQL触发器是一种特殊的存储过程,主要通过事件触发从而执行。通过订单与库存管理的案例,详细阐述了触发器的特性及在电子商城系统中的应用。 触发器的主要应用场合有:当向...

    MySQL触发器

    介绍了MySQL触发器的相同内容。包括触发器的创建、删除,使用和测试过程

Global site tag (gtag.js) - Google Analytics