私は以下のデータを持つテーブルを持っています。行が存在しない場合のみSQL挿入
TABLE_1
ID, GROUP_ID, ARTIFACT_ID, VERSION
101, com.abc, pqra, 1.0.0
102, com.abc, pqrb, 2.0.0
103, com.abc, pqrc, 3.0.0
104, com.abc, pqrd, 4.0.0
Table_2
ID, MODULE_ID, ISSUE_KEY
11, 104, XYZ-12
12, 104, XYZ-34
私はTable_2に値を挿入するには、次のコマンドを使用しています。
あなたは上記のクエリから推測できるように、私が最初に与えられたGROUP_ID
、
ARTIFACT_ID
と
VERSION
値をTABLE_1から
ID
を取得しようとし、その後
XYZ-56
として取り出さ
ID
と
ISSUE_KEY
値でTABLE_2にデータを挿入しています
INSERT INTO Table_2 (MODULE_ID, ISSUE_KEY) SELECT ID, 'XYZ-56' FROM Table_1
WHERE Table_1.GROUP_ID = 'com.abc' AND Table_1.ARTIFACT_ID = 'pqrd' AND
Table_1.VERSION = '4.0.0'
。 上記のコマンドを実行した後、Table_2は
ID, MODULE_ID, ISSUE_KEY
11, 104, XYZ-12
12, 104, XYZ-34
13, 104, XYZ-56
ようになり、上記INSERT
クエリに伴う問題は、それが既にMODULE_ID
とISSUE_KEY
の特定の値で指定された行が存在するかどうかをチェックしないことです。私は再び同じINSERTクエリを実行した場合、その表は
ID, MODULE_ID, ISSUE_KEY
11, 104, XYZ-12
12, 104, XYZ-34
13, 104, XYZ-56
14, 104, XYZ-56
のようになります。私は、行が与えられたMODULE_ID
とISSUE_KEY
で既に存在している何の行が存在しないだけのTable_2に挿入することにしたいです。
上記の挿入クエリを変更して、期待どおりに処理するのに役立つ人がいますか。
ここのような使用はありませんhttp://stackoverflow.com/a/41186684/2562699 – whereisSQL