以下に SQL 挿入がありますが、正常に動作しますが、DATE=xxxx、NAME =xxxx、JOB = xxx かどうかを確認し、存在する場合は HOURS を更新し、そうでない場合は新しい行を挿入します。これはSQLで可能ですか?
"INSERT INTO TABLE (NAME, DATE, JOB, HOURS) VALUES ('BOB', '12/01/01', 'PM','30');
以下の OR REPLACE を同じ結果で試すと、毎回新しい行が追加されます。
add_time = conn.prepareStatement("INSERT OR REPLACE INTO RESOURCE (NAME, DATE, JOB, HOURS) VALUES ('"+name+"', '" + date + "', '"+job+"','"+hours+"');");
例えば:
以下がDBにあり、ジョンが自分の時間を更新したい場合、名前、日付、仕事が挿入しようとしている値と同じであり、それらがHOURSのみを更新するかどうかを確認します。それ以外の場合、それらのいずれも一緒に存在しなかった場合 (John は別の DATE または JOB に対して記録された時間を持っている可能性があります)、新しい行を挿入します。
また、他の人も、以下のように同じ DB に時間とさまざまな役割を記録します。
ジョン | ジョン | 2012 年 12 月 12 日 | クリーナー | 20 ジョン | 2012 年 12 月 12 日 | 社長 | 社長 10 ジム | 2011 年 12 月 10 日 | クリーナー | 5