Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定列更改Mysql/Joomla时是否有时间戳?_Mysql_Joomla - Fatal编程技术网

特定列更改Mysql/Joomla时是否有时间戳?

特定列更改Mysql/Joomla时是否有时间戳?,mysql,joomla,Mysql,Joomla,是否有类似的函数或查询跟踪行上次更改的时间?id没有时间戳列,我也不能添加一个,有一个特定的列,名称发布正在从0更改为1,反之亦然,我想检查上次更改的时间 在这里与joomla一起工作,并试图确定插件何时发布/取消发布,没有相关的事件,只有保存前后的事件是onExtensionBefore和after save,但没有跟踪发布状态的事件 添加在每次columnname更新时执行的触发器: 分隔符| 创建触发器“TriggerName” 更新“TriggerTable”后 每行 开始 如果是NE

是否有类似的函数或查询跟踪行上次更改的时间?id没有时间戳列,我也不能添加一个,有一个特定的列,名称发布正在从0更改为1,反之亦然,我想检查上次更改的时间


在这里与joomla一起工作,并试图确定插件何时发布/取消发布,没有相关的事件,只有保存前后的事件是onExtensionBefore和after save,但没有跟踪发布状态的事件

添加在每次
columnname
更新时执行的触发器:

分隔符|
创建触发器“TriggerName”
更新“TriggerTable”后
每行
开始
如果是NEW.columnname OLD.columnname,则
设置'timestampcolumn`=NOW();
如果结束
结束
|
之后,如果您确实更新了
columnname
,它应该将
timestampcolumn
更新为当前时间


注意:在定义触发器时,使用
分隔符[
分隔符
]
更改您的分隔符。分隔符应该是不在
CREATE TRIGGER
定义中的内容。默认分隔符是
和更改默认值是必需的,因为
after
SET`timestampcolumn'=NOW()
否则将中断
触发器
定义。

对于onSave事件,您应该获取整行数据,包括已发布/状态。保存过程中可能涉及的每个字段都不需要特殊触发器。
我会制作一个内容插件,其中有一个表被键入到所讨论的表中,如果状态发生变化,它将在保存时抓紧时间。

你能添加另一个表吗?不,我不能,我只能检查现有的一个,它没有发布时间column@diEcho我编辑了我的帖子,这样你就可以更好地理解我面对的是什么建议:如果你在joomla论坛上问这个问题,你会得到更好的答案(我想是的)哈哈,别让我开始了,joomla论坛不会得到这样的回复,不能添加/更改columns@Benn然后你需要将这些信息存储在其他地方,比如其他表格、其他数据库、文件、草图册……问题是我们制作的插件是系统插件,而onSave仅用于内容插件我不确定你的意思。任何保存的表单都将有一个onSave。所以你可以使用内容插件,但如果你想使用系统插件,你可以。。。但是,为什么你会想在每次加载时检查该插件,而你知道它只应该在你在管理中编辑表单时触发?你还希望插件做什么?用户可以在extensions插件管理器中禁用插件:插件,无需进入插件编辑表单,也没有我可以挂接的事件,在25/3.0上测试,制作css/js压缩插件。在pluginformenter上,我们删除缓存并创建一个新的缓存,但若用户在plugins列表中禁用插件,我们就不能这样做。因此,告诉我们插件何时被禁用/启用的时间戳可以帮助我们交叉引用缓存文件的时间戳,并在未发布时间比缓存文件时间戳新时删除缓存。
DELIMITER |
CREATE TRIGGER `TriggerName` 
    AFTER UPDATE ON `TriggerTable` 
    FOR EACH ROW 
    BEGIN 
        IF NEW.columnname <> OLD.columnname THEN
            SET `timestampcolumn`=NOW();
        END IF 
    END
    |