- 締切済み
SQLについて
うまく説明できるるかわかりませんが、 以下、解決方法がもしあれば教えてください。 VBで Oracleデータベースを接続し、 SQL実行をするツールを作成しています。 概要は、二つのデータベースを接続しています。 一つには、職員番号と、所属コード 二つ目には、職員番号と、異動地コード 選択した、所属コードから職員番号を引っ張ると、10名が該当して、 その全員に選択した異動地コードをinsertするというものです。 問題なく、できたのですが、 10名のうち1人は、別途で異動地コードを入力しており、そのあとに完成したセレクト文を流すと、一意制約に引っかかります。 職員番号と異動地コード、さらにinsertする日付などがユニーク制約をかけているので、理由もわかるのですが、はじかれる1人以外の9名だけinsertすることは可能なのでしょうか? できるかどうかもわからず、困っています(;_;) なにかいい方法があれば、教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yumi-access
- ベストアンサー率21% (36/170)
回答No.2
insertは新規登録 updateは更新 もし10人全員の異動地コードを登録したいならば select してヒットするならupdate それ以外はinsertするという風にすれば 一意エラーにならないと思います。 Aテーブル 職員番号、所属コード Bテーブル 職員番号、異動地コード select * from Bテーブル where 職員番号 データがあるならupdate それ以外はinsert ※updateすると上書きされます
- watanabe04
- ベストアンサー率18% (295/1598)
回答No.1
1件ずつinsertしてcommitすれば問題ないでしょう。