我正在查找標準SQL「UPSERT
」語句。一個呼叫插入和更新,如果存在。SQL標準UPSERT調用
我正在尋找一個工作,高效和跨平臺的電話。
我見過MERGE
,UPSERT
,REPLACE
,INSERT .. ON DUPLICATE UPDATE
但沒有聲明滿足需求。
順便說一句我使用MYSQL和HSQLDB unitests。我明白HSQLDB是有限的,可能並不包括我需要的東西,但是即使沒有它,我也找不到標準的方法。 聲明只有MYSQL和HSQLDB現在也足夠了。
我一直在尋找一段時間,無法得到答案。
我的表:
CREATE TABLE MY_TABLE (
MY_KEY varchar(50) NOT NULL ,
MY_VALUE varchar(50) DEFAULT NULL,
TIME_STAMP bigint NOT NULL,
PRIMARY KEY (MY_KEY)
);
任何想法?
感謝名單;)
'INSERT ..對重複UPDATE'是'mYSQL'的關鍵。你能顯示一些記錄還是表格結構? – 2013-03-06 16:04:53
是的,但它僅在MYSQL中受支持。 HSQLDB和所有其他人不使用它... – BobTheBuilder 2013-03-06 16:05:53
有一個ANSI合併(http://en.wikipedia.org/wiki/Merge_%28SQL%29),但它沒有在所有DBMS中實現。所以沒有希望有一個通用的命令。 – 2013-03-06 16:07:04