- PR -

executeUpdate()の戻り値について

1
投稿者投稿内容
やまさん
会議室デビュー日: 2007/10/07
投稿数: 2
投稿日時: 2007-10-07 13:19
はじめまして、
やまさんと申します。

insert文を実行したexecuteUpdate()の
戻り値に"0"がリターンされる場合は、
あるのでしょうか?
INSERT 文、UPDATE 文、DELETE 文の場合は行数と
1.4のリファレンスには記載されていたのですが・・・

よろしくお願いいたします。
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2007-10-07 16:20
ふつうに考える範囲では、insertでは、0は返ってこなさそうだね。
制約に引っかかって弾かれた場合は、返ってくるのは−1だろうし。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-10-07 16:44
INSERT 〜 SELECTの構文ならあり得ますよ。
やまさん
会議室デビュー日: 2007/10/07
投稿数: 2
投稿日時: 2007-10-07 17:00
さいくろうさん、あしゅさん
ありがとうございます。

たとえば、insert〜selectで0が返ってくる場合は、
selectで一件もデータを拾えなかった場合ということですね。
そういうパターンもあるんですね。

では、select〜insertの
selectの部分で20件引っぱれたのに
戻り値が20未満の場合なども考えられるのですか?

ご教授お願いいたします。

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-10-08 00:14
何が返ってくるかはインターフェイスに規定されているとおりに返ってくるのでは?
としかいえませんね。これはドライバの実装次第で変わるからです。

というわけで、何が返ってくるかは実装次第なので、
引用:

では、select〜insertの
selectの部分で20件引っぱれたのに
戻り値が20未満の場合なども考えられるのですか?


インサートに失敗した分を無視するRDBMSであれば可能性はあるでしょうけど、
そんな実装のRDBMSはあるのでしょうか・・・
どちらにせよドライバの実装に問題があっても起こりうる可能性はあるので、
有りあえないとは言い切るとこはできないと思います。

>さいくろうさん
select-insertで一意制約違反があったら、
大半は例外がスローされると思いますが、
生のJDBCで-1が返ってくるケースってあるんでしょうか。
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2007-10-08 12:44
ごめんなさい。私が間違っていました。
参ったな・・・m(_ _;m
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-10-08 13:14
UPDATE DELETE なら SQLで条件式にマッチするものがない場合「0」が帰ってくるかと。
1

スキルアップ/キャリアアップ(JOB@IT)