Perl DBIx::Class 截断 table

Perl DBIx::Class Truncate table

我正在寻找用 DBIx::Class 截断 table 的方法,但我无法在网上找到任何东西,除了一些建议,例如删除所有行而不是截断table。 不幸的是,TRUNCATE 速度要快得多,我希望能正确地完成它。现在,我想我会使用 DBI 进行截断,但它有点缺点。

这有可能吗?

提前致谢:-)

您可以直接在您的 DBIx::Class 模型中执行 SQL,并使用一个小辅助函数:

sub _sql_do {
  my ( $self , $sql ) = @_ ;

  return $self->storage->dbh_do(
    sub {
      my ( $storage , $dbh , $sql ) = @_ ;
      my $sth = $dbh->prepare( $sql ) ;
      $sth->execute() ;
    },
    $sql
  );
}