当前位置: 首页 > news >正文

北京网站建设推广鄂州手机网站设计

北京网站建设推广,鄂州手机网站设计,最新汽车网站大全,开源crm系统【图书推荐】《MySQL 9从入门到性能优化#xff08;视频教学版#xff09;》-CSDN博客 《MySQL 9从入门到性能优化#xff08;视频教学版#xff09;#xff08;数据库技术丛书#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…【图书推荐】《MySQL 9从入门到性能优化视频教学版》-CSDN博客 《MySQL 9从入门到性能优化视频教学版数据库技术丛书》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了的博客-CSDN博客 触发器是一个特殊的存储过程它与普通的存储过程不同的是存储过程的执行要使用CALL语句来调用而触发器的执行不需要使用CALL语句来调用也不需要手工启动只要当一个预定义的事件发生的时候就会被MySQL自动调用。例如当对表fruits进行操作INSERT、DELETE或UPDATE时就会激活它触发器。 触发器不仅可以查询其他表而且可以包含复杂的SQL语句。它们主要用于满足复杂的业务规则或要求。例如可以根据客户当前的账户状态控制是否允许插入新订单。本节将介绍如何创建触发器。 10.1.1  创建只有一个执行语句的触发器 创建只有一个执行语句的触发器的语法如下 CREATE TRIGGER trigger_name trigger_time trigger_eventON tbl_name FOR EACH ROW trigger_stmt 其中trigger_name表示触发器名称用户自行指定trigger_time表示触发时机可以指定为before或aftertrigger_event表示触发事件包括INSERT、UPDATE和DELETEtbl_name表示建立触发器的表名即在哪张表上建立触发器trigger_stmt是触发器的执行语句。 【例10.1】创建一个单执行语句的触发器SQL语句如下 mysql CREATE TABLE account (acct_num INT, amount DECIMAL(10,2));mysql CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW SET sum sum NEW.amount;mysqlSET sum 0;mysql INSERT INTO account VALUES(1,1.00), (2,2.00);mysql SELECT sum; ------ | sum | ------ | 3.00 | ------对于上述语句首先创建一张表account表中有两个字段分别为acct_num定义为INT类型和amount定义成浮点类型其次创建一个名为ins_sum的触发器触发的条件是向数据表account插入数据之前对新插入的amount字段值进行求和计算。 10.1.2  创建有多个执行语句的触发器 创建有多个执行语句的触发器的语法如下 CREATE TRIGGER trigger_name trigger_time trigger_eventON tbl_name FOR EACH ROWBEGIN语句执行列表END 其中trigger_name表示触发器的名称用户自行指定trigger_time表示触发时机可以指定为before或aftertrigger_event表示触发事件包括INSERT、UPDATE和DELETEtbl_name表示建立触发器的表名即在哪张表上建立触发器触发器程序可以使用BEGIN和END作为开始和结束中间包含多条语句。 【例10.2】创建一个包含多个执行语句的触发器SQL语句如下 CREATE TABLE test1(a1 INT); CREATE TABLE test2(a2 INT); CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY); CREATE TABLE test4(a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b4 INT DEFAULT 0 );DELIMITER //CREATE TRIGGER testref BEFORE INSERT ON test1FOR EACH ROW BEGININSERT INTO test2 SET a2 NEW.a1;DELETE FROM test3 WHERE a3 NEW.a1; UPDATE test4 SET b4 b4 1 WHERE a4 NEW.a1;END //DELIMITER ;INSERT INTO test3 (a3) VALUES (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL);INSERT INTO test4 (a4) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);上面的代码创建了一个名为“testref”的触发器。这个触发器的触发条件是在向表test1插入数据前执行触发器的语句具体执行的代码如下 mysql INSERT INTO test1 VALUES (1), (3), (1), (7), (1), (8), (4), (4); 4张表中的数据如下 mysql SELECT * FROM test1; ------ | a1 | ------ | 1 | | 3 | | 1 | | 7 | | 1 | | 8 | | 4 | | 4 | ------ 8 rows in set (0.00 sec)mysql SELECT * FROM test2; ------ | a2 | ------ | 1 | | 3 | | 1 | | 7 | | 1 | | 8 | | 4 | | 4 | ------ 8 rows in set (0.00 sec)mysql SELECT * FROM test3; ---- | a3 | ---- | 2 | | 5 | | 6 | | 9 | | 10 | ---- 5 rows in set (0.00 sec)mysql SELECT * FROM test4; ---------- | a4 | b4 | ---------- | 1 | 3 | | 2 | 0 | | 3 | 1 | | 4 | 2 | | 5 | 0 | | 6 | 0 | | 7 | 1 | | 8 | 1 | | 9 | 0 | | 10 | 0 | ---------- 10 rows in set (0.00 sec)执行结果显示在向表test1插入记录的时候表test2、表test3、表test4都发生了变化。从这个例子中可以看到表test1中的INSERT操作触发了触发器向表test2中插入了表test1中的值删除了表test3中相同的内容同时更新了表test4中的b4即与插入的值相同的个数。
http://www.dnsts.com.cn/news/178708.html

相关文章:

  • php网站制作 青岛wordpress启用cookies
  • 国内比较好的软文网站黑龙江企业网站建设公司
  • 温州建设工程信息网站网站开发前后端分离要多少钱
  • 博客网站开发流程做网站 就上微赞网
  • 海珠建设网站公章在线制作网站
  • 优化网站是什么意思整站优化网站报价
  • 甘肃省住房和城乡建设厅网站网站和App建设成本
  • 通江移动网站建设小程序制作 相册
  • 做外贸的网站有哪几个wordpress自定义模块
  • 海口网站建设加q.479185700asp 通过ftp 网站搬家
  • 房产网站制作模板seo网络推广公司排名
  • 中国建设银行湖南分行官网站南昌建站推广公司
  • 企业网站模板观叫湖南岚鸿团队wordpress 嵌套
  • 网站建站网站91955农安县建设局官方网站
  • 可以在哪个网站做封面赚钱深圳广告公司集中在哪里
  • 湖南网站建设加盟代理如何让自己做的博客网站上线
  • 长沙网站排名优化费用网页游戏大厅免费
  • 建设部网站查询造价师证件wordpress导航去掉多余的样式
  • 网站推广软件工具wordpress文章字体
  • 网站qq未启用台州h5建站
  • 有没有做网页接单的网站wordpress 文章阅读次数
  • 网站备案撤销学生做网站作品图片
  • 企业网站建设分工网站建设所需要的材料
  • 网站网址有哪些沈阳无痛人流
  • 西安网站快速优化注册销售公司流程和费用
  • 佛山网站建设邓先生网站备案申请流程
  • 建设网站的企业发展历程大学生创业项目
  • 可以直接进入网站的正能量网站wordpress修改管理密码错误
  • 百度能做网站建设吗游戏编程怎么学
  • wap网站不流行那个网站能找到人