SQL跟踪器记录表中的更改

g 米哈尔·哈达克(Michal Hudak)

我有一张桌子叫table

id    int(11)      AI    PK
name  varchar(255) 

我将日志存储在 table_log

id     int(11)    AI    PK
action enum('insert', 'update', 'delete')
name   varchar(255)
ts     timestamp  current_timestam

目标:我想创建触发器以将日志存储到table_log

这是触发器:

CREATE TRIGGER `table_insert` AFTER INSERT ON `table`
    FOR EACH ROW
    BEGIN
      INSERT INTO `table_log` (id, action, name, ts)
      VALUES(NEW.id, 'insert', NEW.name, NOW());
    END;

CREATE TRIGGER `table_update` AFTER INSERT ON `table`
    FOR EACH ROW
    BEGIN
      INSERT INTO table_log (id, action, name, ts)
      VALUES(NEW.id, 'update', NEW.name, NOW());
    END;

CREATE TRIGGER `table_delete` AFTER INSERT ON `table`
    FOR EACH ROW
    BEGIN
      INSERT INTO `table_log` (id, action, name, ts)
      VALUES(OLD.id, 'delete', OLD.name, NOW());
    END;

我试图创建触发器,但是语法错误:

错误

SQL query:

CREATE TRIGGER `table_insert` AFTER INSERT ON  `table` 
FOR EACH
ROW 
BEGIN 
INSERT INTO  `table_log` ( id, 
ACTION , name, ts ) 
VALUES (

NEW.id,  'insert', NEW.name, NOW( )
);

MySQL said: Documentation

#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 5 
于尔根

如果未设置除之外的其他定界符;,则该语句将在第一个结尾处结束,;并且触发器定义将不完整。您需要告诉MySQL,该语句应以您定义的定界符结尾。之后,您可以使用delimiter ;

delimiter |
CREATE TRIGGER `table_insert` AFTER INSERT ON  `table` 
FOR EACH ROW BEGIN 
  INSERT INTO  `table_log` ( id, ACTION , name, ts ) 
  VALUES (NEW.id,  'insert', NEW.name, NOW( ));
END
|
delimiter ;

并且不要使用TABLE作为表名!使用更具描述性的名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xamarin中的跟踪器布局

来自分类Dev

跟踪器示例中的OpenCV 3.0链接器错误

来自分类Dev

跟踪表中的更改

来自分类Dev

连接到C ++中的UDP跟踪器

来自分类Dev

Google Analytics-活动中的跟踪器对象

来自分类Dev

库存跟踪器中的方法存在问题

来自分类Dev

作业跟踪器中的配置单元查询

来自分类Dev

从跟踪器选择框中删除“无”?

来自分类Dev

删除RabbitMQ中的firehose跟踪器日志

来自分类Dev

仿生中的仓鼠时间跟踪器在哪里?

来自分类Dev

kubuntu 20.04 中的仓鼠时间跟踪器

来自分类Dev

OSVR红外跟踪器

来自分类Dev

Chartboost PostInstall跟踪器

来自分类Dev

Laravel:访客跟踪器

来自分类Dev

可以跟踪谁删除了SQL表中的记录?

来自分类Dev

可以跟踪谁删除了SQL表中的记录?

来自分类Dev

我正在尝试使用MVC C#在SQL中记录审计表以跟踪使用控制器的编辑

来自分类Dev

SQL Server:表更改跟踪

来自分类Dev

打包的移动应用(Android,iOS)的Javascript错误日志记录/报告/跟踪器

来自分类Dev

Apache Camel跟踪器| 日志级别会改变所记录信息的数量

来自分类Dev

打包的移动应用(Android,iOS)的Javascript错误日志记录/报告/跟踪器

来自分类Dev

需要Javascript才能根据子域名更改广告跟踪器键

来自分类Dev

EFCore 5.0:处置DbContext时更改跟踪器(DbContext生存期)

来自分类Dev

将进度跟踪器更改为父容器的全部范围

来自分类Dev

EFCore 5.0:处置DbContext时更改跟踪器(DbContext生存期)

来自分类Dev

如何使用命令行将跟踪器更改/添加到.torrent文件?

来自分类Dev

µTorrent:如何更改跟踪器的30分钟超时

来自分类Dev

公共/访客问题跟踪器

来自分类Dev

跟踪器解码错误消息

Related 相关文章

热门标签

归档