Perl DBIx :: Class Truncate表

时间:2017-08-02 06:54:11

标签: mysql perl dbix-class

我正在寻找一种用DBIx::Class截断表的方法,但我无法在网上找到任何内容,除了一些建议,例如删除所有行而不是截断表。 不幸的是,TRUNCATE要快得多,我希望能够正确地做到这一点。现在,我想我会使用DBI进行截断,但这有点不对。

这有可能吗?

提前致谢: - )

1 个答案:

答案 0 :(得分:1)

您可以使用小辅助函数直接在DBIx :: Class Model中执行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
  );
}