MySQL/MariaDB 触发 运行 查询并粘贴到行中

MySQL/MariaDB Trigger for Taking Ran Query and Pasting into a Row

因此,我正在进行的项目之一要求我们获取服务器上 运行 的每个查询,并自动将该查询粘贴到数据库中的 table 中。这样做的原因是 DBA 能够查看所有先前 SQL 已在框中 运行 的查询。不幸的是,我没有任何余地来以不同的方式执行此操作,因为客户需要此实现。

以前有没有人这样做过,或者有任何我可以使用的代码会自动执行此操作?谢谢。

小心!如果您对采取的每项操作都执行 INSERT,那么您将需要为该 INSERT 执行 INSERT,此时,您将...

也就是说,第一个记录的查询会挂起服务器并填满磁盘!

不要按照要求的方式执行任务,而是打开 "general log" 并定期将其中的内容抓取到 另一台 机器中,这 没有打开这个记录。

其他反对所述任务的论据...

  • 如果 table 有 TRIGGERs,您将无法添加另一个 TRIGGER
  • 如果 "every query" 真的意味着 "every",这是不可能的(使用 TRIGGER),因为你不能写 SELECTSHOW 触发器.

"as the client is requiring this implementation"。我会通过礼貌地找出 真实的 目标是什么来解决这个 不合理的 约束。他只描述了一个实现

如果他的目标是某种审计日志,那么我对一般日志的建议就足够了。