我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL必知必会--第二十四章

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL必知必会--第二十四章

MySQL必知必会--第二十四章

保持每个数据库的触发器名唯一
4.触发器用CREATE TRIGGER语句创建
    例如: create trigger newproduct after insert on products for each row select "Prodcut added";
5.仅支持表: 只有表才支持触发器,视图不支持
6.每个表最多支持6个触发器, 单一触发器不能与多个事件或多个表关联。
7.触发器失败: 如果BEFORE触发器失败,则MySQL将不执行请求的操作。此外,如果BEFORE触发器或语句本身失败,MySQL 将不执行AFTER触发器(如果有的话)。
8.删除触发器:可使用DROP TRIGGER语句 drop trigger newproduct;
9.触发器不能更新或覆盖。为了修改一个触发器,必须先删除它, 然后再重新创建。
10. insert 触发器:
    (1)在INSERT触发器代码内,可引用一个名为NEW的虚拟表,访问被 插入的行;
    (2)在BEFORE INSERT触发器中,NEW中的值也可以被更新(允许更改 被插入的值);
    (3)对于AUTO_INCREMENT列,NEW在INSERT执行之前包含0,在INSERT 执行之后包含新的自动生成值。
11.BEFORE或AFTER? 通常,将BEFORE用于数据验证和净化(目的是保证插入表中的数据确实是需要的数据)。本提示也适用于UPDATE触发器。
12.DELETE触发器:
    (1)在DELETE触发器代码内,你可以引用一个名为OLD的虚拟表,访问被删除的行;
    (2)OLD中的值全都是只读的,不能更新。
    例如:
        create trigger deleteorder before delete on orders
        for each row
        begin
            insert into archive_orders(order_num, order_date, cust_id)
            values (old.order_num, old.order_date, old.cust_id);
        end;
    解释:在任意订单被删除前将执行此触发器。它使用一条INSERT语句将OLD中的值(要被删除的订单)保存到一个名为archive_ orders的存档表中。
13.多语句触发器:使用BEGIN END块的好处是触发器能容纳多条SQL语句.
14.UPDATE触发器
    (1)在UPDATE触发器代码中,你可以引用一个名为OLD的虚拟表访问 以前(UPDATE语句前)的值,引用一个名为NEW的虚拟表访问新 更新的值;
    (2)在BEFORE UPDATE触发器中,NEW中的值可能也被更新(允许更改 将要用于UPDATE语句中的值);
    (3)OLD中的值全都是只读的,不能更新
    例如:
        create trigger updateorder before update on vendors
        for each row set NEW.vend_state = Upper(NEW.vend_state);
15.触发器的补充
    (1)与其他DBMS相比,MySQL 5中支持的触发器相当初级。未来的 MySQL版本中有一些改进和增强触发器支持的计划。
    (2)创建触发器可能需要特殊的安全访问权限,但是,触发器的执行 是自动的。如果INSERT、UPDATE或DELETE语句能够执行,则相关 的触发器也能执行。
    (3)应该用触发器来保证数据的一致性(大小写、格式等)。在触发器 中执行这种类型的处理的优点是它总是进行这种处理,而且是透 明地进行,与客户机应用无关。
    (4)触发器的一种非常有意义的使用是创建审计跟踪。使用触发器, 把更改(如果需要,甚至还有之前和之后的状态)记录到另一个 表非常容易。
    (5)遗憾的是,MySQL触发器中不支持CALL语句。这表示不能从触发 器内调用存储过程。所需的存储过程代码需要复制到触发器内。
第二十六章--事务处理
1.事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的MySQL操作要么完全执行,要么完全不执行。
2.事务(transaction)指一组SQL语句;
3.回退(rollback)指撤销指定SQL语句的过程;
4.提交(commit)指将未存储的SQL语句结果写入数据库表;
5.保留点(savepoint)指事务处理中设置的临时占位符(place-holder),你可以对它发布回退(与回退整个事务处理不同)。
6.使用start transaction 标记事务开始;
7.使用ROLLBACK:回退MySQL语句
    例如: select * from ordertotals;
          start transaction;
          delete from ordertotals;
          select * from ordertotals;
          rollback;
          select * from ordertotals;
8.事务处理用来管理INSERT、UPDATE和 DELETE语句。数据可以变更的,查询不用。
9.使用COMMIT
    例如:start transaction;
         delete from orderitems where order_num=2010;
         delete from order where order_num=2010;
         commit;
    如果第一条DELETE起作用,但第二条失败,则DELETE不会提交
10.隐含事务关闭: 当COMMIT或ROLLBACK语句执行后,事务会自动关闭.
11.使用保留点
    savepoint delete1;
    每个保留点都取标识它的唯一名字,以便在回退时,MySQL知道要回退到何处。为了回退到本例给出的保留点,可如下进行:
    rollback to delete1;
    保留点越多越好
12.释放保留点: 保留点在事务处理完成(执行一条ROLLBACK或 COMMIT)后自动释放
13.更改默认的提交行为: set autocommint=0;
14.标志为连接专用:autocommit标志是针对每个连接而不是服务器的。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL必知必会--第二十四章

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL必知必会--第二十四章

3.保持每个数据库的触发器名唯一 4.触发器用CREATE TRIGGER语句创建     例如: create trigger newproduct after insert on products for each row select "Prodcut
MySQL必知必会--第二十四章
2019-07-08

MySQL必知必会--第二十二章~第二十三章

第二十三章--使用存储过程 1.存储过程:存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。 2.为什么要使用存储过程?     (1)通过把处理封装在容易使用的单元中,简化复杂的操作(正如前 面例子所述)。     (2)由于不要求反
MySQL必知必会--第二十二章~第二十三章
2014-12-21

MySQL必知必会--第二十一章

3.删除数据:delete from customers where cust_id=10006; 4.删除某列:可以使用update 把该列置为NULL; 5.删除表的内容而不是表: DELETE语句从表中删除行,甚至是 删除表中所有行。但是,DELETE不
MySQL必知必会--第二十一章
2019-01-01

MySQL必知必会--第二章~第四章--MySQL简介

1.DBMS可分为两类:一类为基于共享文件系统的DBMS,另一类为基于客户机—服务器的DBMS。服务器部分是 负责所有数据访问和处理的一个软件。这个软件运行在称为数据库服务 器的计算机上。 2.MySQL Administrator(MySQL管理器)是一个图
MySQL必知必会--第二章~第四章--MySQL简介
2014-06-09

MySQL必知必会--第十六章~第十七章

5.使用带聚集函数的联结     select customers.cust_name, customers.cust_id, count(orders.order_num) as num_id from customers  inner orders on
MySQL必知必会--第十六章~第十七章
2016-07-26

MySQL必知必会--第十九章

第十九章--插入数据 1。插入数据:     insert into customers values(NULL, "XXX","XXX", "XXX","XXX", "XXX","XXX", "XXX","XXX",NULL, NULL);     没有输出
MySQL必知必会--第十九章
2016-01-25

MySQL必知必会--第十章--计算字段

第十章--计算字段 1.字段:字段(field) 基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的 连接上。 2.拼接字段:将值联结到一起构成单个值。在MySQL的SELECT语句中,可使用Concat(
MySQL必知必会--第十章--计算字段
2019-01-15

MySQL必知必会--第五章~第八章

第六章--过滤数据 1. 在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤, WHERE子句在表名(FROM子句)之后给出    例如:select prod_names, prod_id, prod_price from products
MySQL必知必会--第五章~第八章
2019-03-03

MySQL必知必会--第一章--了解SQL

1.什么是数据库     数据库(database) 保存有组织的数据的容器(通常是一个文 件或一组文件)。     数据库软件应称为DBMS(数据库管理系统)     表是一种结构化的文件,可用 来存储某种特定类型的数据。     模式(schema) 关于
MySQL必知必会--第一章--了解SQL
2018-11-06

MySQL必知必会1-20章读书笔记

MySQL备忘目录目录使用MySQL检索数据排序检索数据过滤数据数据过滤用通配符进行过滤用正则表达式进行搜索创建计算字段使用数据处理函数数值处理函数汇总数据分组数据使用子查询作为计算字段使用子查询联结表创建高级联结组合查询全文本搜索插入数据更新和删除数据使用M
MySQL必知必会1-20章读书笔记
2019-01-02

编程热搜

目录