`

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 5.0版本引入的一项重要特性,为数据库管理提供了更为精细的控制能力。触发器允许在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行SQL语句,...

    mysql触发器文档

    MySQL触发器是一种服务器端的程序,它可以响应特定的数据库事件(如插入、更新或删除记录)而自动执行。触发器自MySQL 5.0版本起被引入,这标志着MySQL在功能性上的一大进步,使其能够更好地满足企业级应用的需求。 ...

    mysql触发器教程

    MySQL触发器是一种存储在数据库中的特殊类型的存储过程,当特定的事件(如插入、更新或删除数据)发生时自动执行。它们允许用户定义一系列复杂的规则和逻辑,以便在数据库操作时执行额外的操作。 #### 二、MySQL...

    mysql中触发器使用详解.docx

    MySQL中的触发器是一种数据库对象,它与特定的表相关联,并在对表执行INSERT、UPDATE或DELETE操作之前或之后自动执行预定义的SQL语句。触发器的主要作用是增强数据库的逻辑控制,确保数据完整性、记录操作日志以及...

    MySQL触发器.rar

    在"MySQL触发器.pdf"这本书籍教程中,你可能会深入学习到触发器的详细用法,包括如何创建、修改和删除触发器,以及如何在实际项目中有效利用它们。"下载说明.txt"可能包含了获取更多资源的指引,而"A5下载- 更全的...

    mysql触发器

    MySQL触发器是数据库管理系统中的一个重要特性,用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。这些语句可以是复杂的业务逻辑,用来确保数据的一致性、完整性和安全性。在本篇...

    mysql触发器.zip

    4. **触发器的语法**:展示了创建、修改和删除触发器的SQL语句格式,包括定义触发器的名字、关联的表、触发条件和执行的SQL代码。 5. **示例应用**:提供了实际案例,如在插入新记录时自动计算累计值,或者在更新...

    实验九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 的触发器与存储过程类似,都是内嵌于数据库的一种编程机制。触发器的概念最早出现在 MySQL 5.0 版本中,这一特性使得开发者能够编写自动化的数据库操作逻辑,用于响应...

    mysql触发器.pdf

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

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

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

Global site tag (gtag.js) - Google Analytics