风景园林硕士考研真题笔记资料

[复制链接]
查看781 | 回复0 | 2022-12-20 08:59:28 | 显示全部楼层 |阅读模式
章触发器触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。MySQL从5.0.2版本开始支持触发器。在这一章中将讲解的内容包括:触发器的含义和作用如何创建触发器如何查看触发器如何删除触发器.docin.com9.1创建触发器触发器是由INSERT、UPDATE和DELETE等事件来触发某种特定操作。满足触发器的触发条件时,数据库系统就会执行触发器中定义的程序语句。这样做可以保证某些操作之间的一致性。例如,当学生表中增加了一个学生的信息时,学生的总数就必须同时改变。可以在这里创建一个触发器,每次增加一个学生的记录,就执行一次计算学生总数的操作。这样就可以保证每次增加学生的记录后,学生总数是与记录数是一致的。触发器触发的执行语句可能只有一个,也可能有多个。本节将详细讲解创建触发器的方法。.docin.com9.1.1创建只有一个执行语句的触发器MySQL中,创建只有一个执行语句的触发器的基本形式如下:CREATETRIGGER触发器名BEFOREAFTER触发事件EACHROW执行语句.docin.com9.1.2创建有多个执行语句的触发器MySQL中,触发器触发的执行语句可能有多个。

创建有多个执行语句的触发器的基本形式如下:CREATETRIGGER触发器名BEFOREAFTER触发事件EACHROWBEGIN执行语句列表END.docin.com9.2查看触发器查看触发器是指查看数据库中已存在的触发器的定义、状态和语法等信息。查看触发器的方法包括SHOWTRIGGERS语句和查询information_schema数据库下的triggers.docin.com9.2.1SHOWTRIGGERS语句查看触发器信MySQL中,可以执行SHOWTRIGGERS语句来查看触发器的基本信息。其基本形式如下:SHOWTRIGGERS.docin.com9.2.2在triggers表中查看触发器信息MySQL中,所有触发器的定义都存在information_schema数据库下的triggers表中。查询triggers表,可以查看到数据库中所有触发器的详细信息。查询的语句如下:SELECTFROMinformation_schema.triggers.docin.com9.3触发器的使用MySQL中,触发器执行的顺序是BEFORE触发器、表操作(INSERT、UPDATE和DELETE)、AFTER触发器。

下面通过一个示例演示这三者的执行顺序。【示例9-6】下面在department表上创建BEFORESERT和AFTERINSERT这两个触发器。在向department表中插入数据时,观察这两个触发器的触发顺序。创建触发器的代码如下:CREATETRIGGERbefore_insertBEFOREINSERTEACHROWINSERTtrigger_testVALUES(null,CREATETRIGGERafter_insertAFTERINSERTEACHROWINSERTtrigger_testVALUES(null,.docin.com9.4删除触发器删除触发器指删除数据库中已经存在的触发器。MySQ中使用DROPTRIGGER语句来删除触发器。其基本形式如下:DROPTRIGGER触发器名.docin.com9.5本章实例在本小节中将在product表上创建三个触发器。每次激活触发器后,都会更新operate.创建product表和operate.创建product_bf_insert触发器.创建product_af_update触发器.创建product_af_del触发器.对product表进行操作.docin.com9.6上机实践题目要求:)9.5小节中的在product表上分别创建AFTERNSERT、BEFOREUPDATE和BEFOREDELETE三个触发器,触发器的名称分别为product_af_insert、product_bf_update和product_bf_del。

执行语句部分都是向operate表插入操作方法和操作时间。)查看product_bf_del触发器的基本结构。)分别执行INSERT、UPDATE和DELETE)删除product_bf_update和product_bf_del.docin.com9.7常见问题及解答.MySQL中创建多条执行语句的触发器总是遇到分号就结束创建,然后报错?MySQL中,创建多条执行语句的触发器时,需要用到BEGIN…END的形式。每个执行语句都必须是以分号结束。但是,这样就会出问题。因为,系统默认分号是SQL序结束的标志,遇到分号整个程序就结束了。要解决这个问题,就需要DELIMITER语句来改变程序的结束符号。如“DELIMITER,可以将程序的结束符号变成“&&”。如果要把结束符号变回分号,只要执行“DELIMITER.docin.com9.8小结本章介绍了MySQL数据库的触发器的定义和作用、创建触发器、查看触发器、使用触发器、删除触发器等内容。创建触发器和使用触发器是本章的重点内容。读者在创建触发器后,一定要查看触发器的结构。使用触发器时,触发器执行的顺序是BEFORE触发器、表操作(INSERT、UPDATE和DELETE)、AFTER触发器。

创建触发器是本章的难点。读者需要将本章的知识结合实际需要来设计触发器。下一章将介绍查询语句的使用。.docin.com9.9本章习题.在9.5小节上的product表上创建BEFOREINSER和AFTERINSERT两种触发器。这两个触发器触发后都是更新test_trigger)向product表中插入记录,插入语句如下所示:INSERTproductVALUES(10,´ccc´,´治疗头痛´,北京ccc制药厂´,´北京市昌平区´);)查看test_trigger表的记录,分析触发器的触发顺序。)删除触发器test_bf_insert和test_af_insert
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则