ON DUPLICATE KEY UPDATE
MySQL सिंटैक्स है, PostgreSQL नहीं। आप जो चाहते हैं उसे करने के लिए PostgreSQL में एक सरल SQL सिंटैक्स नहीं है।
लेकिन दस्तावेज़ीकरण ऐसा करने वाले फ़ंक्शन के लिए उदाहरण कोड शामिल है।
CREATE TABLE db (a INT PRIMARY KEY, b TEXT);
CREATE FUNCTION merge_db(key INT, data TEXT) RETURNS VOID AS
$$
BEGIN
LOOP
-- first try to update the key
UPDATE db SET b = data WHERE a = key;
IF found THEN
RETURN;
END IF;
-- not there, so try to insert the key
-- if someone else inserts the same key concurrently,
-- we could get a unique-key failure
BEGIN
INSERT INTO db(a,b) VALUES (key, data);
RETURN;
EXCEPTION WHEN unique_violation THEN
-- do nothing, and loop to try the UPDATE again
END;
END LOOP;
END;
$$
LANGUAGE plpgsql;