3

我们有一个使用多个 SQL 查询的应用程序,有时可能会产生奇怪的错误。

例如,它可能是:

INSERT INTO TABLE (ID, FIELD) VALUES (1, "field value");

这将导致:

ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

因为违反了唯一主键约束。

在 MySQL 中是否有可能以某种方式记录错误以及导致它的查询?我试图在/etc/mysql/my.cnf中启用错误日志通用日志,但它从未产生预期的结果。我可以在没有错误的情况下启用每个查询的日志记录(对我们来说毫无用处,我们只对导致错误的查询感兴趣)。

错误可以被应用程序捕获(在我们的例子中,我们使用 Perl DBI),但是当存储过程中有多个语句时,我们不知道是哪一个,因为错误消息不包括查询,甚至涉及的表的名称。这使得故障排除相当困难。

我确定我遗漏了一些明显的东西。例如,在 Oracle 中,这是默认行为,查询错误会记录到文本文件中,以便轻松识别。

4

1 回答 1

2

这是客户的事情。在访问层隔离数据库访问并在客户端生成日志。数据库无法记录这一点。

于 2011-04-07T11:48:03.433 回答