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

网站开发工程师心得总结wordpress安装为什么是英文版

网站开发工程师心得总结,wordpress安装为什么是英文版,最近军事新闻大事2020,玉林专业网站建设🌟 各位看官好,我是maomi_9526! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习C语言的相关知识。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更…

🌟 各位看官好,我是maomi_9526

🌍 种一棵树最好是十年前,其次是现在!

🚀 今天来学习C语言的相关知识。

👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给更多人哦

目录

5. 游标

5.1 声明游标

5.2 打开游标

5.3 取出数据

5.4 关闭游标

5.5 异常处理器(Handler)

5.6 游标的完整示例

6. 触发器

6.1 创建触发器

6.2 删除用户时同步删除其扩展表

6.3 查看、删除触发器

7. 注意事项与坑

触发器示例


5. 游标

在 MySQL 中,游标(Cursor)是一种用于遍历查询结果集的机制。游标允许你逐行处理查询结果,对于一些复杂的操作,比如逐行处理数据、进行复杂的计算等,游标非常有用。通常,游标用于存储过程中,在需要逐行处理结果集时使用。

5.1 声明游标

使用 DECLARE 语句声明游标。在声明游标时,需要指定游标基于的查询。

语法:

DECLARE 游标名 CURSOR FOR 查询语句;
5.2 打开游标

通过 OPEN 语句打开游标并执行查询。

语法:

OPEN 游标名;
5.3 取出数据

使用 FETCH 语句从游标中获取一行数据。

语法:

FETCH NEXT FROM 游标名 INTO 变量列表;

FETCH 会将游标当前指向的行的数据加载到指定的变量中。

5.4 关闭游标

当数据处理完毕后,使用 CLOSE 语句关闭游标。

语法:

CLOSE 游标名;
5.5 异常处理器(Handler)

在 MySQL 中,Handler(异常处理器)是用于处理存储过程中的异常和错误的机制。Handler 可以帮助在遇到特定条件(如查询结果为空、错误发生等)时,自动执行指定的操作,从而提高程序的健壮性和灵活性。

MySQL 提供了多种 Handler 类型,主要通过 DECLARE 语句声明。在存储过程中,Handler 用于捕获特定条件(如查询没有返回结果、触发错误等),并执行相应的操作。

Handler 机制的目的是:当遇到异常或特定条件时,不需要让存储过程中断,而是可以继续执行后续的逻辑。

Handler 的基本语法:

DECLARE handler_type HANDLER FOR condition_value action;

常见的 Handler 语句例子包括:

DECLARE EXIT HANDLER FOR SQLSTATE '02000';  -- 退出码退出
DECLARE EXIT HANDLER FOR NOT FOUND;         -- 未找到退出
DECLARE EXIT HANDLER FOR SQLWARNING;       -- SQL警告退出
5.6 游标的完整示例

以下是一个完整的游标示例,演示了如何使用游标在存储过程中逐行处理数据:

DELIMITER ##
CREATE PROCEDURE s10(IN p_sdept VARCHAR(10))
BEGINDECLARE c_snme VARCHAR(20);DECLARE c_sno VARCHAR(5);DECLARE c_birthday DATE;DECLARE c_name CURSOR FOR SELECT sno, snme, birthday FROM student WHERE p_sdept = sdept;DECLARE EXIT HANDLER FOR NOT FOUND CLOSE c_name;CREATE TABLE IF NOT EXISTS r1 (id VARCHAR(5),name VARCHAR(20),birthday DATE);OPEN c_name;WHILE TRUE DOFETCH c_name INTO c_sno, c_snme, c_birthday;INSERT INTO r1 VALUES(c_sno, c_snme, c_birthday);END WHILE;CLOSE c_name;
END ##
DELIMITER ;

6. 触发器

触发器(Trigger)是 MySQL 中的一种机制,允许在数据库表中发生特定事件(如插入、更新或删除)时自动执行一系列操作。

6.1 创建触发器

创建触发器时,首先使用 DELIMITER 临时改变语句分隔符,以便在触发器体内使用分号。然后,通过 CREATE TRIGGER 语句创建触发器。

语法:

DELIMITER $$               -- 临时换分隔符,避免碰到触发器体内的分号CREATE TRIGGER 触发器名
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON 表名
FOR EACH ROW
BEGIN-- 触发器体:可写多条语句-- 可用 NEW.列名 访问“新值”-- 可用 OLD.列名 访问“旧值”(对于 INSERT 没旧值,DELETE 没新值)
END$$DELIMITER ;                -- 恢复默认分隔符
6.2 删除用户时同步删除其扩展表

以下触发器示例在删除用户时,同时删除用户在 user_profile 表中的扩展信息:

DELIMITER $$CREATE TRIGGER user_bd_cleanup
BEFORE DELETE ON user
FOR EACH ROW
BEGINDELETE FROM user_profile WHERE uid = OLD.uid;
END$$DELIMITER ;
6.3 查看、删除触发器
  • 查看当前库所有触发器:

SHOW TRIGGERS\G
  • 查看某触发器的创建语句:

SHOW CREATE TRIGGER student_ai_log\G
  • 删除触发器:

DROP TRIGGER IF EXISTS student_ai_log;

7. 注意事项与坑

主题说明
权限需要 TRIGGER 权限(或 SUPER)才能创建/删除触发器。
单表同事件多触发器MySQL 8.0 允许同一“事件+时机”创建多个触发器,但 5.7 及更早版本只允许一个。
递归触发触发器里对同一张表再执行 INSERT/UPDATE/DELETE 会再次触发,谨防无限递归。
事务触发器在当前事务中执行,若触发器报错,整个外层语句会回滚。
NEW/OLD 只读限制BEFORE UPDATE 中可修改 NEW.xxx 来影响即将写入的值;其他场景 NEW/OLD 均只读。
不支持 COMMIT/ROLLBACK触发器体内禁止显式提交或回滚。
触发器示例
DELIMITER ##CREATE TRIGGER tb_user_insert_trigger
AFTER INSERT ON student
FOR EACH ROW
BEGININSERT INTO user_logs (operation, operate_time, operate_id, operate_params)VALUES ('insert',NOW(),NEW.sno,CONCAT('插入的数据内容为:sno=', NEW.sno, ', name=', NEW.snme));
END##DELIMITER ;
http://www.dtcms.com/wzjs/553477.html

相关文章:

  • 网站收录方法cms开发教程
  • 广州企业建站系统模板怎样查后缀vc域名网站
  • 世代网络网站建设设计浙江省住房城乡建设厅网站首页
  • 支付宝手机网站网站建设衤金手指谷哥十四
  • 网站开发毕业设计文档对网站策划的看法
  • 住房建设部官方网站办事大厅网站为什么需要空间
  • 网站开发 青岛自建淘宝客网站模板
  • 网站建设与推广的实训报告wordpress import
  • 美食 网站模板开发者app
  • 万网主机网站建设视频高端建筑企业简介
  • 两个网站如何做端口映射wordpress自定义排序
  • 专业营销型网站建设费用自已能做网站建设吗
  • 老版建设银行网站门户网站规划
  • 虚拟主机 两个网站怎么自己网站搜不到
  • 网站设计确认书哈尔滨网站制作公司价格
  • ai设计logo免费网站一百互联网站建设
  • 网站建设与管理教程视频摄影 网站 源码
  • 分析网易严选网站开发松江品划做网站
  • 企业网站个人可以备案吗店铺设计图片素材
  • 沈阳网站哪家做的好网络服务停用
  • 成都网站建设及推广年费wordpress移动端加底部导航
  • 工业和信息化部网站备案系统查询h5游戏网站建设
  • notepad做网站技巧yandex引擎搜索入口
  • 全球做网站的公司排名湖南网站建设开发公司
  • 宁夏省住房城乡建设厅网站wordpress调用列表页
  • 做奢侈品回收网站特点泉企业网站建设
  • 网站空间地址网站建立策划书
  • 网站建设招标文件google广告在wordpress
  • 电龙网站建设东莞横沥邮编
  • 有没有专门做艺术的网站邢台建站企业邮箱