繁体   English   中英

mySQL 中的触发器和程序问题

[英]trigger and procedure issue in mySQL

当系统将新记录插入我的数据库表时,我想运行一个特定的脚本(名为 proc.php 文件,见下文)。(我读到我需要这个 UDF 库,我已经在我的服务器上安装了它并且它工作正常)

为此我写了一个触发器和一个程序

触发代码:

DELIMITER $$

USE `db_name`$$

DROP TRIGGER /*!50032 IF EXISTS */ `trigger`$$

CREATE /*!50017 DEFINER = 'root'@'localhost' */ TRIGGER `trigger` AFTER INSERT ON `billing` 
FOR EACH ROW 
BEGIN
    CALL `db_name`.`udf_proc`(NEW.user_id);
END;
$$

DELIMITER ;

程序代码:

DELIMITER $$

CREATE /*[DEFINER = { user | CURRENT_USER }]*/ PROCEDURE `db_name`.`udf_proc`(userId INT)
BEGIN
    DECLARE cmd CHAR(255);
    DECLARE result CHAR(255);

    SET cmd = CONCAT('php -f "/var/www/html/proj/proc.php" ',userId);
    SET result = sys_eval(cmd);
END$$

DELIMITER;

当我尝试手动插入新记录时,没有任何反应,我不知道为什么

您确定 MySQL 具有/var/www/html/proj/proc.php和运行 php 脚本的权限吗?

您是否检查了 MySQL 日志?

/var/logs/mysql.log
/var/logs/mysql.err

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM