我有一個SQL插入下面,它工作正常,但我希望它檢查如果DATE = xxxx,NAME = xxxx和JOB = xxx並更新HOURS,如果它們存在,否則插入新行。這可能與SQL?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+"');");
例如:
如果下面是在數據庫中,約翰想更新自己的時間,它會檢查名稱,日期,工作都是一樣的值試圖插入,如果他們只是更新HOURS。否則,如果它們中的任何一個都不存在(John可能有幾個小時針對另一個DATE或JOB記錄)插入一個新行。
另外其他人也將在同一個DB中記錄他們的小時和不同的角色,如下所示。
John | 12/12/2012 |清潔劑| 20 John | 12/12/2012 | ceo | 10 Jim | 12/10/2011 |清潔劑| 5
是的,即使通過整體的方法,我最好的選擇是'UNIQUE()'約束。 – Najzero 2013-02-11 07:16:23