我下面有一个 SQL 插入,工作正常,但是我希望它检查 DATE=xxxx、NAME =xxxx 和 JOB = xxx 是否存在,并更新 HOURS(如果存在),否则插入新行。这可以用 SQL 实现吗?
"INSERT INTO TABLE (NAME, DATE, JOB, HOURS) VALUES ('BOB', '12/01/01', 'PM','30');
尝试以下或替换相同的结果,每次都会添加一个新行。
add_time = conn.prepareStatement("INSERT OR REPLACE INTO RESOURCE (NAME, DATE, JOB, HOURS) VALUES ('"+name+"', '" + date + "', '"+job+"','"+hours+"');");
例如:
如果以下内容在数据库中,并且约翰想要更新他的时间,它将检查姓名、日期、工作是否与尝试插入的值相同,以及它们是否仅更新小时。否则,如果它们都不存在在一起(John 可能针对另一个 DATE 或 JOB 记录了几个小时),则插入一个新行。
另外,其他人也会在同一数据库中记录他们的时间和不同角色,如下所示。
约翰 | 2012 年 12 月 12 日 |清洁工| 20
约翰 | 2012 年 12 月 12 日 |首席执行官 | 10
吉姆| 2011 年 12 月 10 日 |清洁工| 5