本文实例讲述了mysql 触发器语法与应用。分享给大家供大家参考,具体如下:

例子:创建触发器,记录表的增、删、改操作记录

//创建user表;DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; //创建对user表操作历史表DROP TABLE IF EXISTS `user_history`;CREATE TABLE `user_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL, `operatetype` varchar(200) NOT NULL, `operatetime` datetime NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • new:当触发插入和更新事件时可用,指向的是被操作的记录
  • old: 当触发删除和更新事件时可用,指向的是被操作的记录

INSERT:

DROP TRIGGER IF EXISTS `tri_insert_user`;DELIMITER ;;CREATE TRIGGER `tri_insert_user` AFTER INSERT ON `user` FOR EACH ROW begin  INSERT INTO user_history(user_id, operatetype, operatetime) VALUES (new.id, 'add a user', now());end;;DELIMITER ;
DROP TRIGGER IF EXISTS `tri_update_user`;DELIMITER ;;CREATE TRIGGER `tri_update_user` AFTER UPDATE ON `user` FOR EACH ROW begin  INSERT INTO user_history(user_id,operatetype, operatetime) VALUES (new.id, 'update a user', now());end;;DELIMITER ;
DROP TRIGGER IF EXISTS `tri_delete_user`;DELIMITER ;;CREATE TRIGGER `tri_delete_user` AFTER DELETE ON `user` FOR EACH ROW begin  INSERT INTO user_history(user_id, operatetype, operatetime) VALUES (old.id, 'delete a user', now());end;;DELIMITER ;

希望本文所述对大家MySQL数据库计有所帮助。

更多相关文章

  1. MySQL系列多表连接查询92及99语法示例详解教程
  2. Andorid Dialog 示例【慢慢更新】
  3. Android(安卓)PureMVC
  4. Ubunu下搭建android NDK环境
  5. 自定义SeekBar主题
  6. android SQLite数据库基本操作示例
  7. android draw bitmap 示例代码
  8. Android启动时启动Activity 的定义的位置
  9. Android适配器之------BaseAdapter(例子)

随机推荐

  1. android 微博客户端源码
  2. android 调用call
  3. Android Studio 使用Gradle在Terminal终
  4. Android -- Dialog动画
  5. Android(安卓)Path里FillType功能
  6. Android延时任务方法
  7. android Intent打开各种类型文件((PDF、wo
  8. Androi:ViewPager
  9. edittext的光标的位置
  10. Android 获取IMEI(Android 10以下可用)