我正在使用DBIx::Class,我只想更新表中的一行。目前我是这样做的:
my $session = my_app->model("DB::Session")->find(1);
$session->update({done_yn=>'y',end_time=>\'NOW()'});
它可以工作,但问题是当它确实找到找到行时,它会执行整个查询:
SELECT me.id, me.project_id, me.user_id, me.start_time, me.end_time, me.notes, me.done_yn FROM sessions me WHERE ( me.id = ? ): '8'
当我只想更新一行时,这似乎有点多。无论如何都可以更新一行而不必先将整行从数据库中拉出?我正在寻找这样的东西:
my_app->model("DB::Session")->update({done_yn=>'y',end_time=>\'NOW()'},{id=>$id});
$id
查询的WHERE id=?
部分在哪里。有谁知道如何做到这一点?谢谢!