mysql触发器的用法

server/2024/12/21 23:39:07/

假设有一个名为"user"的MySQL表,包含以下列:

  • id:用户id,自增主键
  • name:用户名
  • email:用户邮箱
  • age:用户年龄
CREATE TABLE user (id INT PRIMARY KEY,username VARCHAR(50),password VARCHAR(50),email VARCHAR(50)
);

现在,我们将创建一个触发器,用于在插入新用户时自动计算用户年龄是否大于18岁,并将结果存储在另一个表中。

首先,创建一个存储年龄计算结果的表"age_results",包含以下列:

  • id:主键
  • user_id:用户id
  • is_above_18:是否年满18岁(0表示未满18岁,1表示年满18岁)
CREATE TABLE age_results (id INT AUTO_INCREMENT PRIMARY KEY,user_id INT,is_above_18 INT
);

接下来,创建触发器,命名为"check_age_trigger",在"user"表上的插入操作时触发:

CREATE TRIGGER check_age_trigger
AFTER INSERT ON user
FOR EACH ROW
BEGINDECLARE user_age INT;SET user_age = TIMESTAMPDIFF(YEAR, NEW.age, CURDATE());IF user_age >= 18 THENINSERT INTO age_results (user_id, is_above_18) VALUES (NEW.id, 1);ELSEINSERT INTO age_results (user_id, is_above_18) VALUES (NEW.id, 0);END IF;
END;

触发器中的逻辑如下:

  • 获取插入操作的新用户的年龄,并计算年龄差值(用户年龄到当前日期的年数差)
  • 如果年龄差值大于等于18,则将用户id和1(表示年满18岁)插入"age_results"表
  • 否则,将用户id和0(表示未满18岁)插入"age_results"表

现在,每当向"user"表插入一条新用户记录时,触发器会自动计算用户年龄是否大于18岁,并将结果存储在"age_results"表中。


http://www.ppmy.cn/server/129247.html

相关文章

9.16贪心算法

定义:贪心算法是一种逐步构建解决方案的算法,每次选择当前最优的局部解,期望通过局部最优解的累积,最终获得全局最优解​​​​​​典型例题: 1.找零问题--蓝桥云课 解决方案:先找大额,再找小额…

数据结构:栈和队列

前言 本章节较为抽象,我们先讲解概念,再进行举例。如有问题,欢迎评论区提问质疑。 栈 1.概念与结构 栈:只允许在固定的一端进行插入和删除元素操作的线性表。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈…

C++模拟实现vector容器【万字模拟✨】

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: 学习专栏C语言_Stark、的博客-CSDN博客 项目实战C系列_Stark、的博客-CSDN博客 数据结构与算法_Stark、的博客-CSDN博客 座右铭:梦想是一盏明灯&#xff…

C++ 3D冒险游戏开发案例

3D冒险游戏的C开发案例,包括游戏设计、实现细节、图形渲染、音效处理等内容。 3D冒险游戏开发案例 一、游戏设计 游戏概述 游戏名称:“探索者的传奇”类型:3D冒险游戏目标:玩家控制角色在一个开放的世界中探索、解谜、战斗并完成…

【斯坦福CS144】Lab2

一、实验目的 实现一个 TCPReceiver,用以接收传入的 TCP segment 并将其转换成用户可读的数据流。 二、实验内容 1.接收TCP segment; 2.重新组装字节流(包括EOF); 3.确定应该发回给发送者的信号,以进行…

10.2 Linux_进程_进程相关函数

创建子进程 函数声明如下: pid_t fork(void); 返回值:失败返回-1,成功返回两次,子进程获得0(系统分配),父进程获得子进程的pid 注意:fork创建子进程,实际上就是将父进程复制一遍作为子进程&…

【操作系统】引导(Boot)电脑的奇妙开机过程

🌹😊🌹博客主页:【Hello_shuoCSDN博客】 ✨操作系统详见 【操作系统专项】 ✨C语言知识详见:【C语言专项】 目录 什么是操作系统的引导? 操作系统的引导(开机过程) Windows操作系…

计算机视觉硬件知识点整理(五):3CCD彩色相机介绍与成像原理

文章目录 前言一,3CCD彩色相机介绍二,3CCD彩色相机成像流程 前言 在当代影像技术领域,相机的核心组件——图像传感器,经历了从传统的胶片到现代数字化的革命性转变。其中,3CCD(Three-Chip Charge-Coupled …