MySql,MariaDB 存储过程和函数研究

原创
2016/04/03 22:39
阅读数 10

注意事项:

1、在函数体中使用变量不需要任何标识符,变量定义为a1则直接使用a1,

在设计中充分利用触发器能够大量降低PHP逻辑代码的复杂度,

如博客系统中的日志功能,能够根据blog_content表中的after_add和after_update触发器来自动添加修改记录以实现自动记录功能而不必等待PHP逻辑中去控制。

在触发器中引用新插入行的内容值时用 NEW.字段名 来定义

以下SQL是博客组建的blog_content表:

CREATE TABLE `a_blog_content` (
  `BlogID` int(11) unsigned NOT NULL,
  `Content` text NOT NULL,
  `UTime` int(10) unsigned NOT NULL,
  PRIMARY KEY (`BlogID`),
  CONSTRAINT `FK_FK_BlogContent` FOREIGN KEY (`BlogID`) REFERENCES `a_blog` (`BlogID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TRIGGER `on_edit` AFTER UPDATE ON `a_blog_content` FOR EACH ROW insert into a_blog_edit_log(BlogID,Content,Time) values(NEW.BlogID,NEW.Content,UNIX_TIMESTAMP());

该触发器能够在这张表被修改时自动的添加内容修改记录到blog_edit_log中

可以利用触发器来实现指定数据的更新,

在进销存中存在订单结算的逻辑,订单结算中,需要先检查客户、供应商的欠款信息,检查订单是否被结算完成,结算金额是否大于当前尚欠金额,如果大于金额则提示,如果强行执行则多余金额转移到用户钱包中。因此此处对订单的结算记录工作可以用到触发器自动添加数据库记录。

展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部