• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL中insert触发器(插入)详解

MySQL中insert触发器(插入)详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了MySQL,insert,触发器等相关知识,希望本文的分享对您有所帮助
INSERT触发器

在有了前面的基础知识后,我们现在来看所支持的每种触发器类型以及它们的差别。

INSERT 触发器在 INSERT 语句执行之前或之后执行。需要知道以下几点:

1.在 INSERT 触发器代码内,可引用一个名为 NEW 的虚拟表,访问被插入的行;

2.在 BEFORE INSERT 触发器中, NEW 中的值也可以被更新(允许更改被插入的值);

3.对于 AUTO_INCREMENT 列, NEW 在 INSERT 执行之前包含 0 ,在 INSERT执行之后包含新的自动生成值。

下面举一个例子(一个实际有用的例子)。 AUTO_INCREMENT 列具有MySQL自动赋予的值。确定新生成值的方法,但下面是一种更好的方法:

输入:

create trigger neworder after insert on orders for each row select new .order_num;

分析:此代码创建一个名为 neworder 的触发器,它按照 AFTER INSERT ON orders 执行。在插入一个新订单到 orders 表时,MySQL生成一个新订单号并保存到 order_num 中。触发器从 NEW.order_num 取得这个值并返回它。此触发器必须按照 AFTER INSERT 执行,因为在 BEFORE INSERT 语句执行之前,新 order_num 还没有生成。对于 orders 的每次插入使用这个触发器将总是返回新的订单号。

为测试这个触发器,试着插入一下新行,如下所示:

输入:

insert into orders(order_date,cust_id) values(now(),10001);

输出:

1.png

分析:orders 包 含 3 个 列 。 order_date 和 cust_id 必 须 给 出 ,order_num 由MySQL自动生成,而现在 order_num 还自动被返回。

BEFORE 或 AFTER ? 通常,将 BEFORE 用于数据验证和净化(目的是保证插入表中的数据确实是需要的数据)。本提示也适用于 UPDATE 触发器。

【相关推荐】

1. mysql免费视频教程

2. mysql触发器简介及如何创建和删除触发器

3. MySQL使用字符集和校对顺序使用教程

4. MySQL字符集和校对顺序简介

5. MySQL事务-使用保留点、更改默认的提交行为详解

以上就是MySQL中insert触发器(插入)详解的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2017-12-08mysql主从配置
  • 2017-05-11解析mysql中:单表distinct、多表group by查询去除重复记录
  • 2018-12-05MySQL Order By语法介绍
  • 2018-12-05总结数据库设计的原则
  • 2018-12-05给Myql创建索引
  • 2018-12-05全面接触SQL语法(7)
  • 2017-05-11MySQL collation方法
  • 2018-12-05Oracle 9i产品文档
  • 2018-12-05针对SQL 2000 的分页存储过程代码分享
  • 2018-12-05Oracle数据库安全策略分析 (三)第1/2页

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysqldump 快速搭建特定库主从架构(GTID)
    • 详解在MySQL中创建表的教程
    • Oracle AS关键字 提示错误
    • SQL Server数据库实例名与服务器名不一致的解决办法
    • mysql存储过程中的多个select问题
    • linux修改mysql数据库文件的路径
    • phpmyadmin报错:#2003 无法登录 MySQL服务器的解决方法
    • [转]NoSQL数据库的分布式算法
    • mysql启用skip-name-resolve模式时出现Warning的处理办法
    • mysql执行时间为负数的原因分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有