我想找到由Class::DBI等Perl ORM包生成的确切SQL语句。我不正在寻找为简单的插入和删除而生成的SQL,但是对于由于稍微复杂的对象操作而导致的行修改(在父表中作为行的子节点的表中插入行,例如)
有什么方法可以得到它吗?
答案 0 :(得分:6)
Class :: DBI使用DBI,因此您可以通过环境变量启用所有SQL语句的跟踪:
DBI_TRACE=3=dbi.log your-perl-script
或在Perl内部,在执行任何语句之前:
use DBI;
DBI->trace(2, 'dbi.log');
答案 1 :(得分:2)
既然你说过“比如”......
如果您使用DBIx::Class(a Class::DBI compatibility layer),则可以将环境变量DBIC_TRACE
设置为1
。