mysql - Perl DBIx::Class 截断表

标签 mysql perl dbix-class

我正在寻找一种使用 DBIx::Class 截断表的方法,但我无法在网上找到任何东西,除了一些建议,例如删除所有行而不是截断 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
  );
}

关于mysql - Perl DBIx::Class 截断表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45453525/

相关文章:

php - 在插入查询中选择查询

perl - perl 中的 if 条件是否需要大括号?

perl - 替换方法 - 如何使用 Perl 查找中间有换行符的两个标签?

perl - DBIx::Class 与 HTML::FormHandler 重用 dbh

perl - DBIx::Class 通过 ID 从另一个表中获取行

php - MySQL : group by column and get date range

MySQL选择错误的索引

Perl Dancer2 默认路由失败

mysql - 长时间运行的 mysql "cleaning up"事务