简体   繁体   English

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

[英]Is it possible to obtain the SQL statements generated by Class::DBI?

I want to find the exact SQL statements that are generated by a Perl ORM package such as Class::DBI . 我想找到由Perl ORM包(如Class :: DBI)生成的确切SQL语句。 I am not looking for SQL generated for simple inserts and deletes, but for row modifications that result from slightly complicated object manipulations (inserting rows in a table which is a child of a row in a parent table, for example) 不是在寻找为简单的插入和删除生成的SQL,而是为了稍微复杂的对象操作(例如,在父表中插入行的子节点的表中的行)进行行修改

Is there some way to get it? 有没有办法得到它?

Class::DBI uses DBI under the hood, so you can enable tracing of all SQL statements via an environment variable: Class :: DBI使用DBI,因此您可以通过环境变量启用所有SQL语句的跟踪:

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

Or inside of Perl, before executing any statements: 或者在Perl内部,在执行任何语句之前:

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

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

Since you said "such as"… 既然你说“如”......

You can set the environment variable DBIC_TRACE to 1 if you are using DBIx::Class (which has a Class::DBI compatibility layer ). 如果使用DBIx :: Class (具有Class :: DBI兼容层 ),则可以将环境变量DBIC_TRACE设置为1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM