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
),因为你不能写 SELECT
或 SHOW
触发器.
"as the client is requiring this implementation"。我会通过礼貌地找出 真实的 目标是什么来解决这个 不合理的 约束。他只描述了一个实现。
如果他的目标是某种审计日志,那么我对一般日志的建议就足够了。
因此,我正在进行的项目之一要求我们获取服务器上 运行 的每个查询,并自动将该查询粘贴到数据库中的 table 中。这样做的原因是 DBA 能够查看所有先前 SQL 已在框中 运行 的查询。不幸的是,我没有任何余地来以不同的方式执行此操作,因为客户需要此实现。
以前有没有人这样做过,或者有任何我可以使用的代码会自动执行此操作?谢谢。
小心!如果您对采取的每项操作都执行 INSERT
,那么您将需要为该 INSERT
执行 INSERT
,此时,您将...
也就是说,第一个记录的查询会挂起服务器并填满磁盘!
不要按照要求的方式执行任务,而是打开 "general log" 并定期将其中的内容抓取到 另一台 机器中,这 没有打开这个记录。
其他反对所述任务的论据...
- 如果 table 有
TRIGGERs
,您将无法添加另一个TRIGGER
。 - 如果 "every query" 真的意味着 "every",这是不可能的(使用
TRIGGER
),因为你不能写SELECT
或SHOW
触发器.
"as the client is requiring this implementation"。我会通过礼貌地找出 真实的 目标是什么来解决这个 不合理的 约束。他只描述了一个实现。
如果他的目标是某种审计日志,那么我对一般日志的建议就足够了。