No.1ベストアンサー
- 回答日時:
昔やった方法ですが、エラーコードを判定することによって回避可能です
・いきなりInsertする(正常終了はもちろん問題なし)
・エラー時 それは一意制約のエラーコード?を判定
一意制約エラーなら → 次の処理へ? ・・・
それ以外のエラーなら → 落とす? ・・・ など
ちなみにselectでチェックしてからinsertの場合でも
そのわずかの間に他からinsertされていて、エラーになることもあります
(同時にinsertしにいくことがなければ問題ありませんが)
No.2
- 回答日時:
こんにちは。
ちょっと補足を・・・
> だからと言ってINSERT手前で重複チェック、つまり一度DBを読んでから、
> INNSERTすると返って二度手間ですし、これが業務アプリの場合レスポン
> スが悪くなりますよね?
selectする時にレコードの有無って何で判断されていますか?
エラーコードを判断していませんか?
insert時も同じですよ。
もし開発言語がPro*Cであれば変数"sqlca.sqlcode"にエラーコードが入り
ますので、その内容を確認してエラーハンドリングすれば良いと思います。
ご参考まで・・・
>selectする時にレコードの有無って何で判断されていますか?
例えば、伝票ナンバーという一意の項目があり、
select * from 伝票 where 伝票.伝票ナンバー=100
↑のように、まずselectで、重複するものがないか?をチェックしてから
INSERTすると言った感じに考えていました。
なにぶん勉強している最中なので、これが良いやり方しかわからないので・・・(汗)
>もし開発言語がPro*Cであれば
今現在純粋にオラクルを勉強しているので、その手の開発言語には一切
触れていません。
今回の疑問はあくまで勉強している段階にふと思っただけなので、あまり
難しい事いわれると????なので、せっかく色々説明していただいても
理解できないのでごめんなさい。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- 浮気・不倫(恋愛相談) 質問重複します(-_-;) 社内にいるO型の年上彼女と、軽い?喧嘩をしてからかなりドライというか素っ 1 2023/06/07 00:27
- Visual Basic(VBA) Excelマクロ Application.Run 5 2023/06/17 15:16
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- Chrome(クローム) Chromeで複数タブを開いた状態で閉じ、再度開いた場合のタブの回復は? 2 2022/04/02 01:44
- 美術・アート オリキャラ見てください&設定付けで困ってます②(再掲) ※色々不手際があったのと結構早めに過疎っちゃ 2 2023/02/22 16:11
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
- 大学院 大学留年の危機 重複履修について 4 2022/09/14 23:10
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- PostgreSQL SQLでUPSERTを一度に複数行やる方法 3 2022/03/25 15:17
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL*Loaderで「オブジェクトが...
-
DocuWorksでの印刷
-
BULK INSERTのエラー取得は可能...
-
#1062 - '0' は索引 'PRIMARY' ...
-
アクセスでエラー このフィー...
-
オラクル(PL/SQL)のエラー
-
SQLserver2005 nvarchar を flo...
-
列名に変数を使うことはできな...
-
(素人の質問) SQL Server エ...
-
AccessVBA 実行時エラー'2766'...
-
SQL文長の制限
-
DB2 REORGについて
-
UPDATEを使ったSQL文にて
-
ADOでの接続
-
DLLが正しく呼び出せません (ToT)
-
Access2010実行時エラー-21473525
-
FETCHエラー(オラクル)
-
AccessのMDBのオープンエラーに...
-
エラーについて
-
Access97から2000に入れ替えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
アクセスでエラー このフィー...
-
列名に変数を使うことはできな...
-
実行時エラー459 withステート...
-
SQLserver2005 nvarchar を flo...
-
空白はダメというエラーの表示...
-
AccessVBA 実行時エラー'2766'...
-
オラクル(PL/SQL)のエラー
-
SQL*Loaderで「オブジェクトが...
-
SQLCODE=-420とはどういうエラ...
-
UPDATEを使ったSQL文にて
-
Access2010実行時エラー-21473525
-
(素人の質問) SQL Server エ...
-
SQL文長の制限
-
SQL エラー コードの一覧 につ...
-
DocuWorksでの印刷
-
Access 実行時エラー'3075' 対...
-
「1004:アプリケーション定義...
-
ORACLE PL/SQLの...
-
オラクルでisnumeric?
おすすめ情報