Więc idę z MySQL, gdzie mogę zrobić INSERT on DUPLICATE UPDATE:MERGE składnia używana do upsert lub wstawić na duplikat UPDATE
INSERT INTO table (a,b,c)
VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
Ale teraz używam PostgreSQL i są starania, aby dodać funkcjonalność upsert, wygląda na to, że MERGE może działać w tym, co chciałbym, ale chciał sprawdzić, czy jest to najbardziej optymalna składnia. Example Syntax 1, I've also seen this but don't understand how to implement. Nie próbowałem jeszcze tego, ponieważ myślałem, że MERGE został użyty do scalania danych z Table1 do Table2, czy coś takiego działa?
MERGE
INTO table
USING table
ON c = 1
WHEN MATCHED THEN
UPDATE
SET c=c+1
WHEN NOT MATCHED THEN
INSERT (a,b,c)
VALUES (1,2,3)
Jakieś inne sugestie?
w jakiej wersji Postgres jest to obsługiwane? –
MERGE jest na Todo dla 9.1 http://wiki.postgresql.org/wiki/Todo –
jest rubinowy klejnot dla tego: ['Upsert'] (https://github.com/seamusabshere/upsert) –