MySQL创建触发器(CREATE TRIGGER)方法详解

yizhihongxing

MySQL中创建触发器的方法

在MySQL中,可以使用CREATE TRIGGER语句来创建触发器,其基本语法如下:

CREATE TRIGGER trigger_name trigger_time trigger_event
ON table_name FOR EACH ROW
BEGIN
-- trigger body
END;

其中,各个参数的含义如下:

  • trigger_name:触发器的名称。
  • trigger_time:触发器的执行时机,可以是BEFORE或AFTER。
  • trigger_event:触发器的执行事件,可以是INSERT、UPDATE或DELETE。
  • table_name:要关联触发器的表名。
  • FOR EACH ROW:表示为每行数据都执行触发器。
  • BEGIN和END之间是触发器的实际执行逻辑。

触发器执行时机和事件

在创建触发器时,需要指定触发器的执行时机和执行事件:

  • 执行时机:可以是BEFORE或AFTER,指定在数据发生变化前还是变化后执行触发器中的逻辑。
  • 执行事件:可以是INSERT、UPDATE或DELETE,指定在对数据进行插入、更新或删除时执行触发器中的逻辑。

触发器的实例说明

下面给出一个例子,说明如何创建一个触发器。

假设我们有一个用户表(user),其中包含id、name和age三个字段,现在需要在插入一条记录时,将该记录的name和age分别拼接成一个字符串,并将该字符串插入到另一个表(user_log)中。

CREATE TABLE user (
    id INT(11) NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT(3) NOT NULL,
    PRIMARY KEY (id)
);

CREATE TABLE user_log (
    id INT(11) NOT NULL AUTO_INCREMENT,
    info VARCHAR(100) NOT NULL,
    PRIMARY KEY (id)
);

现在我们可以使用下面的SQL语句创建一个触发器:

CREATE TRIGGER user_insert_trigger
AFTER INSERT
ON user FOR EACH ROW
BEGIN
    DECLARE info VARCHAR(100);
    SET info = CONCAT('New user added: ', NEW.name, ', age ', NEW.age);
    INSERT INTO user_log (info) VALUES (info);
END;

此时,当我们往user表中插入一条新记录时,触发器会自动将该记录的name和age分别拼接成一个字符串,并插入到user_log表中,以表示一个新用户已经添加。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL创建触发器(CREATE TRIGGER)方法详解 - Python技术站

(0)
上一篇 2023年3月10日
下一篇 2023年3月10日

相关文章

  • mysql 获取当前日期函数及时间格式化参数详解

    MySQL 获取当前日期函数及时间格式化参数详解 在 MySQL 中,有许多函数可用于获取当前日期和时间。本文将详细介绍如何使用这些函数,并提供一些示例说明。 1. 获取当前日期 使用 CURDATE() 函数可以获取当前日期,例如: SELECT CURDATE(); 输出结果为当前日期,例如:2022-01-01 2. 获取当前时间 使用 CURTIME…

    database 2023年5月22日
    00
  • MySQL命令行登入的方式有哪些

    这篇“MySQL命令行登入的方式有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL命令行登入的方式有哪些”文章吧。 方法一: 开始菜单 -> 所有程序 -> MySQL -> MySQL Server 8.0 -&…

    MySQL 2023年4月14日
    00
  • Asp.Net Oracle数据的通用操作类

    我来详细讲解”Asp.Net Oracle数据的通用操作类”的完整攻略。 什么是”Asp.Net Oracle数据的通用操作类” “Asp.Net Oracle数据的通用操作类”是一个可以在Asp.Net网站中操作Oracle数据库的通用类。它可以帮助开发者快速地连接Oracle数据库、执行SQL语句、调用存储过程等操作,提高代码的复用性和开发效率。 如何使…

    database 2023年5月21日
    00
  • mysql增删改查基础语句

    MySQL是一种关系型数据库管理系统,可以通过使用基本的SQL语句来对其进行增删改查操作。下面我将详细讲解MySQL的增删改查基础语句的攻略。 增加数据 在MySQL中,可以使用INSERT INTO语句将数据插入到表中。下面是一些INSERT INTO语句的示例: 插入一行: INSERT INTO table_name (column1, column2…

    database 2023年5月21日
    00
  • linux每天定时备份数据库并删除十天前数据详细步骤

    下面是针对“linux每天定时备份数据库并删除十天前数据”的详细攻略步骤: 1. 安装crontab 在linux系统下,定时任务可以使用crontab来实现。如果你的系统中没有安装crontab,则需要先安装。 使用以下命令来安装crontab: sudo apt-get install crontab 2. 编写备份脚本 首先,需要编写一个可以备份数据库…

    database 2023年5月22日
    00
  • sqoop 实现将postgresql表导入hive表

    导入postgresql表的前置条件 在使用sqoop导入postgresql表到hive表之前,需要确保以下条件已满足: postgresql数据表已准备好并在可访问的网络地址上开放了端口。 hive数据仓库在当地机器上启动,并已准备好接受导入的数据。 在服务器上安装了Java运行时环境和Hadoop/Hive。 在将postgresql表导入hive表时…

    database 2023年5月21日
    00
  • [Redis-CentOS7]Redis设置连接密码(九)

    设置Redis密码 修改/etc/redis.conf 一定要强密码redis为内存存储 抗暴力破解强 requirepass password 重启服务 systemctl restart redis 登录redis # redis-cli 127.0.0.1:6379> set username ‘leoshi’ (error) NOAUTH Au…

    Redis 2023年4月13日
    00
  • 在Linux中通过Python脚本访问mdb数据库的方法

    下面是在Linux中通过Python脚本访问mdb数据库的方法的攻略。 环境准备 首先,我们需要在Linux系统中安装mdb-tools与pymdb这两个库。使用以下命令安装: sudo apt-get install mdbtools pip install pymdb 连接MDB数据库 首先,要连接到MDB数据库,可以使用以下代码: import pym…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部