是否可以获取Class :: DBI生成的SQL语句?

时间:2010-01-10 12:00:00

标签: perl orm class-dbi

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

有什么方法可以得到它吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

既然你说过“比如”......

如果您使用DBIx::Classa Class::DBI compatibility layer),则可以将环境变量DBIC_TRACE设置为1