2

我想找到由 Perl ORM 包生成的确切 SQL 语句,例如Class::DBI。我不是在寻找为简单的插入和删除而生成的 SQL,而是寻找由稍微复杂的对象操作导致的行修改(例如,在作为父表中行的子表的表中插入行)

有什么方法可以得到吗?

4

2 回答 2

6

Class::DBI 在后台使用 DBI,因此您可以通过环境变量启用对所有 SQL 语句的跟踪:

DBI_TRACE=3=dbi.log your-perl-script

或者在 Perl 内部,在执行任何语句之前:

use DBI;
DBI->trace(2, 'dbi.log');

http://metacpan.org/pod/DBI#TRACING

于 2010-01-10T14:27:49.233 回答
2

既然你说“比如”……

如果您使用的是DBIx::Class(具有Class::DBI 兼容层) ,则可以将环境变量设置为DBIC_TRACE1

于 2010-01-10T12:14:59.627 回答