$row_obj->update() 後の値は突っ込んだ値に上書きかぁ

日付の値を、DB側に任せて(\'current_timestamp') update とかすると、更新後のupdate_dateとかの日付をとるのに、もう一回selectを明示的に投げる必要があるのかなぁ。なんかupdate後にselectを勝手にはしらせて、データとってきたりしてくれる、ナイスなオプションはないのかなぁ。

したのコードとログをみると何となく言いたいことがわかると思う。

    $c->model('DB')->storage->debug(1);
    my $string = $c->model('DB::Strings')->single(11);
    use Data::Dumper;
    $c->log->debug(  Dumper ( +{$string->get_columns} ) );
    $string->update( { update_date => \'current_timestamp' } );
    $c->log->debug(  Dumper ( +{$string->get_columns} ) );
SELECT me.id, me.created_by, me.string, me.update_date, me.register_date FROM strings me WHERE ( 11 ): 
UPDATE strings SET update_date = current_timestamp WHERE ( id = ? ): '3'
[debug] $VAR1 = {
          'register_date' => '2008-02-19 00:23:29',
          'id' => '3',
          'string' => 'foo',
          'update_date' => '2008-02-24 22:49:20',
          'created_by' => 'tomyhero-vaginarepos-org'
        };
[debug] $VAR1 = {
          'register_date' => '2008-02-19 00:23:29',
          'id' => '3',
          'string' => 'foo',
          'update_date' => \'current_timestamp',
          'created_by' => 'tomyhero-vaginarespos-org'
        };

perl側で日付を入れればとりあえずこれに関してはうまくいくし、無駄なクエリーも走らないのはいいのはわかってんだけどね。何となくね。