`
zcwfeng
  • 浏览: 106699 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

mysql ,触发器语法

 
阅读更多

1. 语法:命名规则

CREATE TRIGGER <触发器名称> <--
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
<触发器SQL语句>

触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.

这里我有个习惯:就是用表的名字+'_'+触发器类型的缩写.因此如果是表t26,触发器是在事件UPDATE(参考下面的点(2)和(3))之前 (BEFORE)的,那么它的名字就是t26_bu。

2. 语法:触发时间

CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER } <--
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
<触发的SQL语句>

触发器有执行的时间设置:可以设置为事件发生前或后 BEFORE | AFTER 。

3. 语法:事件

CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE } <--
ON <表名称>
FOR EACH ROW
<触发的SQL语句>

同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。

4. 语法:表

CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称> <--
FOR EACH ROW
<触发的SQL语句>

触发器是属于某一个表的:当在这个表上执行插入、
更新或删除操作的时候就导致触发器的激活.
我们不能给同一张表的同一个事件安排两个触发器。

5. 语法:( 步长)触发间隔

CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW <--
<触发的SQL语句>

触发器的执行间隔:FOR EACH ROW子句通知触发器
每隔一行执行一次动作,而不是对整个表执行一次。

6. 语法:语句

CREATE TRIGGER <触发器名称>
{ BEFORE | AFTER }
{ INSERT | UPDATE | DELETE }
ON <表名称>
FOR EACH ROW
<触发的SQL语句> <--

触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句,
包括复合语句,但是这里的语句受的限制和函数的一样。
Privileges权限

你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER)。
如果你已经是Root用户,那么就足够了。这跟SQL的标准有所不同。

因此在下一个版本的MySQL中,
你完全有可能看到有一种叫做CREATE TRIGGER的新权限。
然后通过这样的方法赋予:
GRANT CREATE TRIGGER ON <表名称> TO <用户或用户列表>;
也可以通过这样收回权限:
REVOKE CREATE TRIGGER ON <表名称> FROM <用户或用户列表>;

完整小例子:

drop database test_hibernate;
create database test_hibernate;
use test_hibernate;
create table news_table(
id int auto_increment primary key,
title varchar(255) not null,
content varchar(255),
full_content varchar(255)
);

DELIMITER |
create trigger t_full_content_gen BEFORE INSERT ON news_table
FOR EACH ROW BEGIN
set new.full_content=concat(new.title,new.content);
END;
|
DELIMITER ;

分享到:
评论

相关推荐

    mysql触发器语法简介[归类].pdf

    以下是对MySQL触发器语法的详细说明: 1. **触发器命名规则**:触发器必须有一个名字,最多64个字符,并且可以包含表名和触发器类型的缩写。例如,对于名为`t26`的表,一个UPDATE事件的触发器可以命名为`t26_bu`('...

    mysql 触发器语法与应用示例

    以下是对MySQL触发器语法与应用的详细说明: 1. **触发器的创建** 创建触发器时,需要指定触发器的名字、触发的事件(INSERT、UPDATE或DELETE)、触发的时机(BEFORE或AFTER)以及触发动作发生的表。例如,创建一...

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

    本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...

    mysql触发器的作用及语法

    #### 三、MySQL触发器语法详解 1. **CREATE TRIGGER语法** ```sql CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt ``` - `trigger_name`:触发器的名称。...

    MYSQL触发器教程.doc

    MySQL触发器的语法结构包括以下几个部分: 1. **命名规则**:触发器需指定一个唯一名称,最多64个字符,通常建议以表名+触发器类型(如BEFORE UPDATE的bu)作为名称。 2. **触发时间**:触发器可以设定在操作...

    mysql触发器+存储过程

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

    MySQL触发器.pdf

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

    mysql触发器文档

    #### 触发器语法要点 触发器的定义通常包括以下几个关键要素: 1. **名称**:触发器必须有一个唯一的名称,以便于识别。 2. **时间**:触发器可以设置为在数据操作之前(BEFORE)或之后(AFTER)执行。 3. **事件**...

    mysql触发器教程

    ### MySQL触发器教程知识点详解 #### 一、MySQL触发器简介 MySQL触发器是一种存储在数据库中的特殊类型的存储过程,当特定的事件(如插入、更新或删除数据)发生时自动执行。它们允许用户定义一系列复杂的规则和...

    MySQL触发器.rar

    4. 创建触发器语法: 创建触发器通常包括指定触发器的名称、触发动作、触发事件(如INSERT、UPDATE或DELETE)、触发时间(BEFORE或AFTER),以及包含触发器操作的SQL语句。 5. 触发器的限制与注意事项: - 触发器...

    mysql触发器

    在本篇讨论中,我们将深入理解MySQL触发器的概念、类型、语法以及如何在实践中应用。 1. 触发器的概念: MySQL触发器是一种存储过程,它在用户执行数据修改操作(DML:Data Manipulation Language)时自动执行。...

    mysql 触发器用法实例详解

    MySQL触发器语法详解:  触发器 trigger是一种特殊的存储过程,他在插入(inset)、删除(delete)或修改(update)特定表中的数据时触发执行,它比数据本身标准的功能更精细和更复杂的数据控制能力。触发器不是由...

    mysql中触发器使用详解.docx

    创建触发器的基本语法如下: ```sql CREATE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name FOR EACH ROW BEGIN trigger_stmt; END; ``` 在这里,`trigger_name`是触发器的名称,通常建议...

    mysql触发器.zip

    MySQL触发器是数据库管理系统中的一个重要特性,它允许在特定的数据库操作(如INSERT、UPDATE或DELETE)发生之前或之后执行自定义的SQL代码。这些自动执行的代码块可以用来实现复杂的业务逻辑,确保数据的一致性和...

    mysql触发器之创建使用触发器简单示例

    本文实例讲述了mysql触发器之创建使用触发器。分享给大家供大家参考,具体如下: 我们可以可以使用CREATE TRIGGER语句创建一个新的触发器,来看下具体的语法: CREATE TRIGGER trigger_name trigger_time trigger_...

    mysql中经典的触发器语法及相关配置

    ### MySQL中的经典触发器语法及相关配置 #### 一、触发器概述 触发器是一种数据库对象,它被设计用于监视特定的事件并在这些事件发生时自动执行预定义的操作。触发器通常用于实现复杂的业务规则或者数据完整性约束...

    mysql触发器使用实例

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

    Mysql触发器介绍

    ### MySQL触发器详解 #### 一、引言 MySQL 的触发器与存储过程类似,都是内嵌于数据库的一种编程机制。触发器的概念最早出现在 MySQL 5.0 版本中,这一特性使得开发者能够编写自动化的数据库操作逻辑,用于响应...

Global site tag (gtag.js) - Google Analytics