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

景德镇网站建设景德镇所有网上购物的网站

景德镇网站建设景德镇,所有网上购物的网站,烟台网站设计,WordPress直接调用头像地址基本介绍 触发器是与表有关的数据库对象#xff0c;在 INSERT、UPDATE、DELETE 操作之前或之后触发并执行触发器中定义的 SQL 语句。 触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作。 使用别名 NEW 和 OLD 来引用触发器中发生变化的记…基本介绍 触发器是与表有关的数据库对象在 INSERT、UPDATE、DELETE 操作之前或之后触发并执行触发器中定义的 SQL 语句。 触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作。 使用别名 NEW 和 OLD 来引用触发器中发生变化的记录内容这与其他的数据库是相似的。 现在触发器还只支持行级触发不支持语句级触发。 触发器类型OLD的含义NEW的含义INSERT 型触发器无 (因为插入前状态无数据)NEW 表示将要或者已经新增的数据UPDATE 型触发器OLD 表示修改之前的数据NEW 表示将要或已经修改后的数据DELETE 型触发器OLD 表示将要或者已经删除的数据无 (因为删除后状态无数据) 基本操作 创建触发器 DELIMITER $CREATE TRIGGER 触发器名称 BEFORE|AFTER INSERT|UPDATE|DELETE ON 表名 FOR EACH ROW -- 行级触发器 BEGIN触发器要执行的功能; END$DELIMITER ; 查看触发器的状态、语法等信息 SHOW TRIGGERS; 删除触发器如果没有指定 schema_name默认为当前数据库 DROP TRIGGER [schema_name.]trigger_name; 注意事项 确保触发器中的逻辑不影响性能尤其是在高频操作的表上。避免在触发器中出现无限循环的情况例如更新触发器又触发了同一操作。 代码示例 通过触发器记录账户表的数据变更日志。包含增加、修改、删除。 数据准备 CREATE TABLE accounts (id INT AUTO_INCREMENT PRIMARY KEY, -- 账户IDusername VARCHAR(50) NOT NULL UNIQUE, -- 用户名必须唯一password VARCHAR(255) NOT NULL, -- 密码建议加密存储email VARCHAR(100) NOT NULL UNIQUE, -- 邮箱必须唯一created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 创建时间默认当前时间updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -- 更新时间自动更新 ); CREATE TABLE account_change_log (log_id INT AUTO_INCREMENT PRIMARY KEY, -- 日志IDaccount_id INT, -- 被更改的账户IDoperation_type VARCHAR(10), -- 操作类型INSERT, UPDATE, DELETEold_value VARCHAR(255), -- 更新前的值new_value VARCHAR(255), -- 更新后的值changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 变更时间默认当前时间FOREIGN KEY (account_id) REFERENCES accounts (id) -- 外键约束引用账户表 ); # 创建 INSERT 型触发器 -- 更改存储过程的结束符为$$ DELIMITER $$ -- 创建一个触发器在accounts表插入数据后触发 CREATE TRIGGER after_account_insertAFTER INSERTON accountsFOR EACH ROW BEGIN-- 将插入操作记录到account_change_log表中INSERT INTO account_change_log (account_id, operation_type, new_value)VALUES (NEW.id, INSERT, NEW.username); -- 记录新增账户的用户名 END $$ -- 复原存储过程的结束符为默认的; DELIMITER ;# 创建 UPDATE 型触发器 -- 再次更改存储过程的结束符为$$ DELIMITER $$ -- 创建一个触发器在accounts表更新数据后触发 CREATE TRIGGER after_account_updateAFTER UPDATEON accountsFOR EACH ROW BEGIN-- 将更新操作记录到account_change_log表中INSERT INTO account_change_log (account_id, operation_type, old_value, new_value)VALUES (OLD.id, UPDATE, OLD.username, NEW.username); -- 记录更新前后的用户名 END $$ -- 复原存储过程的结束符为默认的; DELIMITER ;-- 创建 DELETE 型触发器 -- 再次更改存储过程的结束符为$$ DELIMITER $$ -- 创建一个触发器在accounts表删除数据后触发 CREATE TRIGGER after_account_deleteAFTER DELETEON accountsFOR EACH ROW BEGIN-- 将删除操作记录到account_change_log表中INSERT INTO account_change_log (account_id, operation_type, old_value)VALUES (OLD.id, DELETE, OLD.username); -- 记录删除账户的用户名 END $$ -- 复原存储过程的结束符为默认的; DELIMITER ;# 插入测试执行上述插入操作后可以查看 account_change_log 表确认新用户的插入记录是否正确。 INSERT INTO accounts (username, password, email) VALUES (user1, password1, user1example.com), (user2, password2, user2example.com), (user3, password3, user3example.com); # 更新测试更新某个用户的信息查看 account_change_log 表确认更新的记录是否正确。 UPDATE accounts SET username updated_user1 WHERE id 1; # 删除测试删除某个用户查看 account_change_log 表确认删除的记录是否正确。 DELETE FROM accounts WHERE id 2; 参考资料 MySQL 官方文档 - 触发器
http://www.hkea.cn/news/14557877/

相关文章:

  • 电子商务网站的设计wordpress 双语
  • 护肤品网站建设前的行业分析建设网站 教学反思
  • 网站与后台个人建网站运营.
  • 网站开发nodejsh5开发工具有哪些
  • 外贸网站wordpress加ssl二级网站建设基本情况
  • 做网站时搜索的代码是什么谷歌广告代理商
  • dw做响应式网站怎么设置网站
  • 网络公司网站绪论Mac怎么搭建网站开发环境
  • 免费的网站程序英国做deal的网站
  • 韩国儿童才艺网站建设模板专业的移动网站建设公司排名
  • 重庆铜梁网站建设公司wordpress安装和使用
  • 深圳网站建设有免费的吗wordpress主题模块添加
  • 建成学校网站申请免费域名邮箱
  • 酒店类的电影网站模板网页设计网站怎么做特效
  • 怎么建设seo自己网站网站keyword如何排列
  • 北京优化网站建设网站后台添加查看爬虫的痕迹
  • 网站没制作好可以备案吗一对一直播网站开发
  • 辽宁省住房城乡建设厅网站站长之家站长工具综合查询
  • 邯郸网站建设方案wordpress相同的cms
  • 网站维护推广怎么做网站模板拍卖
  • 山西省住房和建设厅网站网页制作素材软件有哪些
  • 网站建设课程设计报告总结wordpress上传大图
  • 中国联通网站备案管理系统温州网站推广有哪些方法
  • 网站开发 访问速度慢wordpress自动加文章tittle
  • 有哪些文本封面做的好的网站六站合一的优势
  • 国内最好用的免费建站平台手机商城系统开发
  • 电子商务网站建设课件苏州哪里做网站
  • 宁波网站设计相信荣胜网络做网站软件 手机
  • 多用户商城系统是什么做网站优化给业务员提成
  • 自己做的网站怎样链接数据库免费追剧的app下载