[前][次][番号順一覧][スレッド一覧]

mysql:3857

From: "Kawai,Takanori" <"Kawai,Takanori" <GCD00051@xxxxxxxxxx>>
Date: Thu, 28 Jun 2001 12:31:52 +0900
Subject: [mysql 03857] Re: update した件数をカウントしたい。

川合孝典です。

----- Original Message -----
From: "Akihiko Shinohara" <sino@xxxxxxxxxx>
To: <ml@xxxxxxxxxx>
Sent: Thursday, June 28, 2001 11:02 AM
Subject: [mysql 03853] Re: updateした件数をカウントしたい。


> 篠原です。
(中略)
> DBI::MySQL のマニュアルを注意深く読んでいると
>
> 影響のあった行(Changed)を調べるには、
>
> $sth->rows
>
> 探した行(Matched)を調べるには、connectのdata_sourceに、
> mysql_client_found_rowsを真にして設定し
> # DBI:mysql:database=$database;host=$host;mysql_client_found_rows=1
> 同じく、$sth->rows で、返ってくるようです。
perldocからちょっと長いですがその部分を引用すると...
<引用>
mysql_client_found_rows
    Enables (TRUE value) or disables (FALSE value)
    the flag CLIENT_FOUND_ROWS while connecting to
    the MySQL server. This has a somewhat funny
    effect: Without mysql_client_found_rows, if
    you perform a query like

    UPDATE $table SET id = 1 WHERE id = 1

    then the MySQL engine will always return 0,
    because no rows have changed.  With
    mysql_client_found_rows however, it will
    return the number of rows that have an id 1,
    as some people are expecting. (At least for
    compatibility to other engines.)

    By default this flag is disabled. However, you
    can enable it by default, when installing the
    Msql-Mysql-modules with

    perl Makefile.PL --config --mysql-use-client-found-rows
    make
    make install
</引用>
まさに、そのまんまのことが書いてありますね。
設定すれば、デフォルトにすることもできるとありますし。

> ここから質問です。
> 今まで気にしてませんでしたが、他のデータベースでは、
> どっちを返すのでしょう。クライアント的には、
> Matchedの行を返してもらったほうが便利なような気がします。
いちいち確かめたわけではありませんが、上記の引用にもあると
おり、どちらかといえばMatchedの行数を返すケースのほうが
多いような気がします。
#「(At least for compatibility to other engines.)」との
#ことですし

ただDBIのrowsの定義はrowsメソッドの説明にある
<引用>
 Returns the number of rows affected by the last row
affecting command
</引用>
ということだけだと思いますし、実装のガイドラインである
DBI::DBDでも特に説明があるわけでもありません。ですので
実装者の「解釈」によってバラつきがあるかもしれません。
(少なくともmysqlにはあったわけですし(^^))

==============================================
川合 孝典 (Hippo2000)
   kwitknr@xxxxxxxxxx GCD00051@xxxxxxxxxx
   http://member.nifty.ne.jp/hippo2000
   http://www.hippo2000.net/
    DBI日本語メーリングリスト管理人、 Kansai.pm所属
==============================================


[前][次][番号順一覧][スレッド一覧]

      3845 2001-06-27 19:00 [MAO <mao@xxxxxxxxxx>] update した件数をカウントしたい。       
      3846 2001-06-27 19:31 ┗[TSUTSUMI Thoru <tutu]                                       
      3848 2001-06-27 22:41  ┗[MAO <mao@xxxxxxxxxx>]                                     
      3852 2001-06-28 10:31   ┣[TSUTSUMI Thoru <tutu]                                   
      3856 2001-06-28 12:17   ┃┗["Kawai,Takanori" <GC]                                 
      3853 2001-06-28 11:02   ┗[Akihiko Shinohara <s]                                   
->    3857 2001-06-28 12:31    ┗["Kawai,Takanori" <GC]                                 
      3860 2001-06-28 16:46     ┗[MAO <mao@xxxxxxxxxx>]                               
      3861 2001-06-28 17:36      ┗[TSUTSUMI Thoru <tutu]