工作環境:使用sqlite for android操作系統。做批量插入。sqlite - 有條件替換並插入
考慮以下架構或sqlfiddle:
CREATE TABLE employee_data
(
id varchar(20) primary key,
name varchar(20),
dept varchar(20),
updation_date varchar(30)
);
INSERT INTO employee_data
(id, name, dept, updation_date)
VALUES
("1", "john", "tech", "2017-04-30");
INSERT INTO employee_data
(id, name, dept, updation_date)
VALUES
("2", "john2", "tech", "2017-05-01");
同時添加一個條目employee_data表,下面的條件必須滿足:
,如果給定的條目已不存在(上比較id的基礎),然後添加它。
如果該ID已經存在;然後檢查'updation_date'列 - 如果要添加的條目的updation_date稍後與已存在的條目相比較,則更新該行。 別無所求。
實施例: I) 需要插入("1", "john", "management", "2017-05-01")
如已經存在與ID = 1的條目,檢查updation_date; 現在因爲「2017-05-01」是更新的數據 - 更新該行。 所以輸出中 - ("1", "john", "management", "2017-05-01")
II) 需要插入("3", "steve", "management", "2017-06-01")
與ID NO條目= 3 employee_data,直接這一 輸出添加:("3", "steve", "management", "2017-06-01") is added.
III)
("2", "john2", "tech", "2017-04-01");
如id=2
行存在更多近期updation_date ("2017-05-01")
什麼都不做。
我試過搜索但找不到解決方案。我不知道如何使用插入到選擇語句。或者我是否可以使用雙重選擇。 我記得在oracle中使用合併類似的用例。
注: updation_date
列可以在比較其改爲時間戳格式或數據格式,便於。
謝謝。
你的意思是插入或更新? – Sami
我認爲你需要使用觸發器。 https://sqlite.org/lang_createtrigger.html –
請勿插入或更新。 –