0
當系統向我的db表中插入新記錄時,我想運行一個特定的腳本(命名爲proc.php文件,見下文)(我讀到了我需要的UDF庫,我已經安裝了這個在我的服務器和它單曲正常工作)mySQL中的觸發器和過程問題
爲此,我寫了一個觸發器和程序
觸發代碼:
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;
當我試圖手動插入新記錄什麼也沒有發生,我不`噸知道爲什麼
我看到一個錯誤信息「無法打開輸入文件」 /var/www/html.../proc.php123 我認爲有需要是proc.php到123之間的空間? 如何編輯觸發器以添加該空間? – 2012-04-08 12:06:54
通過'DROP TRIGGER'去除觸發器,並創建一個更多的時間:) – 2012-04-08 12:31:07
我放下當前的觸發器,然後創建相同的觸發器與出滴觸發線,在更改選項我可以看到下拉命令agian – 2012-04-08 14:13:51