我在/usr/esercizi/上的python是:

#!/usr/bin/python
import datetime
now = datetime.datetime.now()
aa = now.strftime("%Y-%d-%m %H:%M | %S")

out_file = open("/usr/esercizi/test.txt","w")
out_file.write("La data di oggi \n\n")
out_file.write(aa)
out_file.close()

出于测试目的而制作,我喜欢从TRIGGER调用它:
mysql> CREATE TRIGGER `notifica_cambiamenti` AFTER UPDATE ON `valore`
    -> FOR EACH ROW BEGIN
    ->
    -> SET @exec_var = sys_exec(CONCAT('python /usr/esercizi/tre.py ', NEW.valore));
    -> END;
    -> $$
Query OK, 0 rows affected (0.06 sec)

该表只有两列:id和valore。
每次更改时,valore应该运行tre.py

我也给:



查询正常,似乎表明没有语法错误
但是不会在文件test.txt上发生

我究竟做错了什么?

最佳答案

您的问题已解决,只需执行以下我为您解决的问题...

CREATE TABLE log_table( datetime update_time, varchar() valore);

我刚刚创建了上表,触发器将在其中存储更新的值。

现在,我将触发器定义如下。
  DELIMITER ;;

  CREATE TRIGGER `notifica_cambiamenti` AFTER UPDATE ON `valore`

  FOR EACH ROW

     BEGIN

       INSERT INTO log_table

          SET update_time = NOW(),
              valore      = NEW.valore);

   END;;

09-28 11:46