- 浏览: 258431 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
1260533105:
uncaught invalidstateerror:Fail ...
WebSocket -
sh747665463:
压力好大啊
【转】如果你不知道接下去学什么,就看这个
昨天接到一个需求,要求在mysql的触发器中执行一个外部程序。
一开始没有什么头绪,后来发现嘿嘿。
http://forge.mysql.com/projects/project.php?id=211
有个叫mysqludf的一个东西,用起来还不错。
http://www.mysqludf.org/lib_mysqludf_sys/index.php
不过这个东西仅仅在linux下试了试,效果还行。
步骤如下:
一、解压附件的压缩包之后
如果不想自己编译的话,把lib_mysqludf_sys.so文件放到 mysql的lib/mysql/plugin/
目录下。
二、执行chcon -t texrel_shlib_t mysql/lib/mysql/plugin/lib_mysqludf_sys.so
三、创建函数
DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;
CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
四、测试
1、准备sh文件
在linux系统中执行下面的命令
su mysql
mkdir /mysqlUDFtest
cd mysqlUDFtest
vi test.sh
#/bin/sh
date > testlog.txt
chmod +x ./test.sh
2、准备数据库表和触发器
选择一个数据库执行如下命令:
CREATE TABLE test1(a1 INT) type=InnoDB;
CREATE TABLE test2(a2 INT) type=InnoDB;
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY) type=InnoDB;
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT 0
) type=InnoDB;
DELIMITER |
DROP TRIGGER /*!50032 IF EXISTS */ `test`.`testref`|
create trigger `test`.`testref` BEFORE INSERT on `test`.`test1`
for each row BEGIN
DECLARE done INT DEFAULT 999;
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
set done = sys_exec("/mysqlUDFtest/test.sh");
IF done != 0 then
INSERT INTO `<>22.t3` VALUES (a,b);
end if;
END;
|
DELIMITER ;
3、向test1表中插入一条数据后,检查linux系统中的/mysqlUDFtest目录下testlog
里的时间是否跟数据插入时间一致。
- lib_mysqludf_sys_0.0.3.tar.gz (8.9 KB)
- 下载次数: 23
发表评论
-
转:一条UPDATE从生到死的整个过程的深入解析
2019-02-23 14:23 466一条UPDATE从生到死的整 ... -
转:scn问题详解
2019-02-23 14:21 518ORACLE SCN问题详解(1)--基础概念详解 ... -
转:Redo Level 11 - Table Operation (DML)
2019-02-23 14:12 489Redo Level 11 - Table Operatio ... -
转发:LogMiner配置使用手册
2018-01-10 18:11 271http://www.cnblogs.com/shishan ... -
oracle 12c pdb
2018-01-10 18:07 567ORACLE 12C中提出来CDB和PDB的概念,对于 ... -
转;v$session,v$session_wait,v$session_wait_history,v$active_session_history
2018-01-10 17:55 451v$session,v$session_wait,v$ ... -
转:sqlplus非交互使用
2017-10-26 14:13 1183sqlplus的非交互式使用 ... -
转:archive log 日志已满
2016-12-15 16:22 1858转帖:原文地址http://blog.csdn.net/p ... -
转:linux系统mysql安装后文件分布情况
2016-01-19 20:31 0MySQL安装完成后不象SQL Server默认安装在一个目 ... -
NLS_COMP和NLS_SORT
2016-01-06 18:49 841oracle中gbk和utf8的数据库在默认nls_com ... -
oracle的collation
2016-01-05 22:40 678一、 In Microsoft SQL Server, ... -
How do I find my database collation and what collations are recommended for Serv
2016-01-05 22:33 0How do I find my database coll ... -
转:mysql 的charaset 与 collation
2016-01-05 22:20 704http://zhongwei-leg.iteye.com ... -
转:mysql与oracle的元数据对比
2016-01-05 22:08 1013MySQL和Oracle虽然在架构上有很大的不同,但是如果从某 ... -
数据仓库之拉链算法(转)
2013-11-22 10:17 1501数据仓库之拉链算法(转)链:古代软兵器的中介之物,故名思意 ... -
配置oracle11g通过dblink+透明网关访问GBase
2013-06-10 17:53 2460一、在oracle的服务器 ... -
数据仓库入门
2013-02-17 09:59 1452数据仓库,英文名称为Data Warehouse, ... -
ODS
2013-02-17 09:46 958ODS(英语:Operational Data Store) ... -
摘录:mysql视图
2012-01-03 12:06 846第22章:视图 目录 ... -
MYSQL Query Cache
2011-12-27 16:36 1459Query Cache,查询缓存,是m ...
相关推荐
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 ...
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 ...
MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集...
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...
7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. ...
mxp/通过本地http服务器直接预览页面,在File菜单下 mxp/以前的连接外部javascript文件的插件都做的一般,使用不直观,这个在object面板中加入了一个按钮,使用方便多了 mxp/使页面中的图片都恢复到原始大小,可以...
6.11.1 jar命令详解 235 6.11.2 创建可执行的JAR包 237 6.11.3 关于JAR包的技巧 238 6.12 本章小结 239 本章练习 239 第7章 Java集合 240 7.1 Java集合概述 241 7.2 Collection和Iterator接口 243 7.2.1 ...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...
2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...