क्या आपने इसे मिलाने की कोशिश की है?
संपादित करें - इसके लिए पोस्टग्रेज 9.1 की आवश्यकता है:
create table mytable (id serial primary key, other_key varchar not null unique);
WITH new_row AS (
INSERT INTO mytable (other_key)
SELECT 'SOMETHING'
WHERE NOT EXISTS (SELECT * FROM mytable WHERE other_key = 'SOMETHING')
RETURNING *
)
SELECT * FROM new_row
UNION
SELECT * FROM mytable WHERE other_key = 'SOMETHING';
में परिणाम:
id | other_key
----+-----------
1 | SOMETHING
(1 row)