数据库触发器

在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表,如 商品信息 库存信息
别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时
在库存表中添加一条库存记录。
这样一来,我们就必须把这两个关联的操作步骤写到程序里面,而且要用 事务 包裹起来,确保这两个操
作成为一个 原子操作 ,要么全部执行,要么全部不执行。
如果我现在不想使用事务怎么办????
MySQL 5.0.2 版本开始支持触发器。 MySQL 的触发器和存储过程一样,都是嵌入到 MySQL 服务器的一 段程序
触发器是由 事件来触发 某个操作,这些事件包括 INSERT UPDATE DELETE 事件。所谓事件就是指
用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生
了,就会 自动 激发触发器执行相应的操作。
当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来
实现
说明:
表名 :表示触发器监控的对象。
BEFORE|AFTER :表示触发的时间。 BEFORE 表示在事件之前触发; AFTER 表示在事件之后触发。
INSERT|UPDATE|DELETE :表示触发的事件。
INSERT 表示插入记录时触发;
UPDATE 表示更新记录时触发;
DELETE 表示删除记录时触发。
创建数据库表
 
CREATE TABLE test_trigger (
id INT PRIMARY KEY AUTO_INCREMENT ,
t_note VARCHAR ( 30 )
);
CREATE TABLE test_trigger_log (
id INT PRIMARY KEY AUTO_INCREMENT ,
t_log VARCHAR ( 30 )
);

代码举例:
创建触发器之后
test_trigger 数据表插入数据之前,向
test_trigger_log 数据表中插入 before_insert 的日志信息
查看修改触发器
注意Navicat里不能用 \G    可以在黑屏里用

相关推荐

  1. 数据库系统概论】触发器

    2024-02-11 21:44:01       31 阅读
  2. Sqlserver数据库触发器sql案例

    2024-02-11 21:44:01       63 阅读
  3. 触发器

    2024-02-11 21:44:01       41 阅读
  4. 数据库】索引 视图 触发器 分页查询

    2024-02-11 21:44:01       42 阅读
  5. 数据库(mysql)-新手笔记(触发器,存储过程)

    2024-02-11 21:44:01       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-11 21:44:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-11 21:44:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-11 21:44:01       87 阅读
  4. Python语言-面向对象

    2024-02-11 21:44:01       96 阅读

热门阅读

  1. Linux 服务管理两种方式service和systemctl

    2024-02-11 21:44:01       40 阅读
  2. 掌握rm命令:Linux文件删除的艺术与安全指南

    2024-02-11 21:44:01       51 阅读
  3. Python列表中的insert功能及用法举例

    2024-02-11 21:44:01       55 阅读
  4. Hadoop运行环境搭建

    2024-02-11 21:44:01       52 阅读
  5. 作业2.8

    作业2.8

    2024-02-11 21:44:01      48 阅读