用于进行 Ran 查询并粘贴到行中的 MySQL/MariaDB 触发器

标签 mysql database sqlite mariadb

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

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

最佳答案

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

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

不要按照要求的方式执行任务,而是打开“常规日志”并定期将其中的内容抓取到另一台机器上,而该机器没有此日志记录已打开。

反对该任务的其他论据......

  • 如果表有 TRIGGER,您将无法添加另一个 TRIGGER
  • 如果“每个查询”确实意味着“每个”,则不可能(使用 TRIGGER),因为您无法编写 SELECTSHOW 触发器。

“因为客户端需要此实现”。我会通过礼貌地找出真正目标来解决这个不合理约束。他仅描述了一个实现

如果他的目标是某种审核日志,那么我关于通用日志的建议应该足够了。

关于用于进行 Ran 查询并粘贴到行中的 MySQL/MariaDB 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29854449/

相关文章:

database - Order By Clause 在 SQL 中花费太多时间

c++ - 如何在C/C++中保存数据?

python - 执行返回值

mysql - 我可以设置一个从多个其他 RDS 主实例进行复制的 RDS 实例吗?

PHP mysql 使用 PHP 语法插入的日期和时间不正确

mysql - SQL 使用行作为列

php - 管理 Multi-Tenancy 数据库连接

Android SQLite "BETWEEN"不包含或返回所有记录

sqlalchemy 中的 Python 字典

mysql - 选择按年和月分组的特殊订单