- - PR -
executeUpdate()の戻り値について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-10-07 13:19
はじめまして、
やまさんと申します。 insert文を実行したexecuteUpdate()の 戻り値に"0"がリターンされる場合は、 あるのでしょうか? INSERT 文、UPDATE 文、DELETE 文の場合は行数と 1.4のリファレンスには記載されていたのですが・・・ よろしくお願いいたします。 | ||||
|
投稿日時: 2007-10-07 16:20
ふつうに考える範囲では、insertでは、0は返ってこなさそうだね。
制約に引っかかって弾かれた場合は、返ってくるのは−1だろうし。 | ||||
|
投稿日時: 2007-10-07 16:44
INSERT 〜 SELECTの構文ならあり得ますよ。
| ||||
|
投稿日時: 2007-10-07 17:00
さいくろうさん、あしゅさん
ありがとうございます。 たとえば、insert〜selectで0が返ってくる場合は、 selectで一件もデータを拾えなかった場合ということですね。 そういうパターンもあるんですね。 では、select〜insertの selectの部分で20件引っぱれたのに 戻り値が20未満の場合なども考えられるのですか? ご教授お願いいたします。 | ||||
|
投稿日時: 2007-10-08 00:14
何が返ってくるかはインターフェイスに規定されているとおりに返ってくるのでは?
としかいえませんね。これはドライバの実装次第で変わるからです。 というわけで、何が返ってくるかは実装次第なので、
インサートに失敗した分を無視するRDBMSであれば可能性はあるでしょうけど、 そんな実装のRDBMSはあるのでしょうか・・・ どちらにせよドライバの実装に問題があっても起こりうる可能性はあるので、 有りあえないとは言い切るとこはできないと思います。 >さいくろうさん select-insertで一意制約違反があったら、 大半は例外がスローされると思いますが、 生のJDBCで-1が返ってくるケースってあるんでしょうか。 | ||||
|
投稿日時: 2007-10-08 12:44
ごめんなさい。私が間違っていました。
参ったな・・・m(_ _;m | ||||
|
投稿日時: 2007-10-08 13:14
UPDATE DELETE なら SQLで条件式にマッチするものがない場合「0」が帰ってくるかと。
|
1