创建将 UNIX_TIMESTAMP() 插入日志表的触发器

Posted

技术标签:

【中文标题】创建将 UNIX_TIMESTAMP() 插入日志表的触发器【英文标题】:creating trigger inserting UNIX_TIMESTAMP() to a log table 【发布时间】:2012-11-09 06:08:19 【问题描述】:

您好,我坚持使用此触发器向我的日志表插入值的语法。使用 phpmyadmin 中的 sql 选项卡,在执行 sql 语句之前出现错误

`#1064 - You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near '' at line 8 `

这是我创建触发器的sql语句

CREATE TRIGGER after_insert_list  
AFTER INSERT ON list FOR EACH ROW  
BEGIN  
    INSERT INTO log (user_id, action, date_log)  
    VALUES (
        NEW.user_id,  
        NEW.action, 
        UNIX_TIMESTAMP()
    );
END 

【问题讨论】:

您确定要先更改分隔符吗? @Jack 你能解释一下吗?我有点困惑。顺便说一句,我在网络 tuts net.tutsplus.com/tutorials/databases/… 上关注本教程 您可以在manual中找到有关分隔符的信息 好的,谢谢我检查一下 【参考方案1】:

按如下方式创建触发器:

delimiter |
CREATE TRIGGER testref 
BEFORE INSERT ON test1FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 WHERE a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END;
|
delimiter ;

【讨论】:

以上是关于创建将 UNIX_TIMESTAMP() 插入日志表的触发器的主要内容,如果未能解决你的问题,请参考以下文章

使用“WHERE UNIX_TIMESTAMP(date)”的 SQL 查询的性能

如何使用 PHP 在 MYSQL 中的数据库表中插入、更新、删除记录时创建日志

如何使用 unix_timestamp 和 from_unixtime Hive 函数将数据类型更改为时间戳

查询失败时如何将 query_id 和 query_text 插入日志表

将 unix_timestamp 转换为 spark 中的普通时间戳(以秒为单位)

Hive unix_timestamp 函数计算不匹配