将新旧对象存储到longblob-Trigger Mysql中

将新旧对象存储到longblob-Trigger Mysql中,mysql,triggers,Mysql,Triggers,在触发器中,我希望将新对象和旧对象存储到日志表的longblob字段中 我想我必须序列化或强制转换这些对象…但是如何 我在网上找不到任何提示或帮助 谢谢 如果它只是您正在审核的一个表,那么您可以完全跳过“序列化”。只需使用公共密钥添加两条记录即可进行审核。您还可以执行插入和删除操作 鉴于没有简单的方法告诉mysql对象,序列化将是一个固定格式的文本字符串xml,可能是JSON哈希或类似的格式 如果要从多个表进行审核,则需要一个类型的其他列。更好的是,它允许您对类型进行版本设置,并应对任何潜在的破

在触发器中,我希望将新对象和旧对象存储到日志表的longblob字段中

我想我必须序列化或强制转换这些对象…但是如何

我在网上找不到任何提示或帮助


谢谢

如果它只是您正在审核的一个表,那么您可以完全跳过“序列化”。只需使用公共密钥添加两条记录即可进行审核。您还可以执行插入和删除操作

鉴于没有简单的方法告诉mysql对象,序列化将是一个固定格式的文本字符串xml,可能是JSON哈希或类似的格式

如果要从多个表进行审核,则需要一个类型的其他列。更好的是,它允许您对类型进行版本设置,并应对任何潜在的破坏性结构变化


我担心触发器的开销,如果对数据的更改只来自一个应用程序,我会认真考虑在应用程序本身中进行审计,在这种情况下,您可能会发现您可以在审核时进行更多处理,并获得更多的好处和选项。

如果您只审核一个表,那么您可以完全跳过“序列化”。只需使用公共密钥添加两条记录即可进行审核。您还可以执行插入和删除操作

鉴于没有简单的方法告诉mysql对象,序列化将是一个固定格式的文本字符串xml,可能是JSON哈希或类似的格式

如果要从多个表进行审核,则需要一个类型的其他列。更好的是,它允许您对类型进行版本设置,并应对任何潜在的破坏性结构变化


我担心触发器的开销,如果对数据的更改只来自一个应用程序,我会认真考虑在应用程序本身中进行审核,在这种情况下,您可能会发现您可以在审核时进行更多处理,并获得更多的好处和选项。

缺少什么,哪些对象?例如,我想这样做:`CREATE TRIGGER
mytable\u au
在更新
mytable
后,为每一行开始插入
triggers\u data
old
new
)值(old,new);END`但这不起作用,我必须用类似值(serialize(old)、serialize(new))的内容来替换“VALUES(old、new)”。您可以构建一个固定格式的字符串或一点xml。旧的和新的只是记录的副本,它们不是对象。哦,您需要考虑是否要记录来自其他表的数据,以及如果表结构发生变化该怎么办。你确定要把这罐虫子的盖子取下来吗?谢谢你的帮助。是的,a必须警惕结构的变化。。。但我别无选择。旧的和新的记录将临时存储在我的日志表中,最后由一个php脚本读取,该脚本将启动一些命令。缺少一些东西,哪些对象?例如,我想这样做:`CREATE TRIGGER
mytable\u au
AFTER UPDATE ON
mytable
为每一行开始插入
triggers\u data
old
new
)值(old,new);END`但这不起作用,我必须用类似值(serialize(old),serialize(new))的内容替换“VALUES(old,new)”嗯,你可以构建一个固定格式的字符串,或者一点xml。旧的和新的只是记录的副本,它们不是对象。哦,你需要考虑是否要记录来自其他表的数据,以及如果表结构发生变化该怎么办。你确定要揭开这罐蠕虫的盖子吗。谢谢你的帮助。是的,我没有o对结构变化保持警惕……但我别无选择。旧记录和新记录将临时存储在我的日志表中,最后由启动一些命令的php脚本读取。缺少一些内容,哪些对象?例如,我想这样做:`CREATE TRIGGER
mytable\u au
在更新后为每行开始的
mytable
N插入
触发器\u data
old
new
)值(old,new);END`但这不起作用,我必须用类似值(serialize(old),serialize(new))的内容替换“VALUES(old,new)”嗯,你可以构建一个固定格式的字符串,或者一点xml。旧的和新的只是记录的副本,它们不是对象。哦,你需要考虑是否要记录来自其他表的数据,以及如果表结构发生变化该怎么办。你确定要揭开这罐蠕虫的盖子吗。谢谢你的帮助。是的,我没有o对结构变化保持警惕……但我别无选择。新旧记录将临时存储在我的日志表中,最后由php脚本读取,并启动一些命令。