簡體   English   中英

如果 Postgres 中不存在記錄,則插入值

[英]Insert values if records don't already exist in Postgres

我想讓它工作,但 Postgres 不喜歡在這種類型的插入中使用WHERE子句。

  INSERT INTO keys(name, value) VALUES
    ('blah', 'true')
  WHERE NOT EXISTS (
    SELECT 1 FROM keys WHERE name='blah'
  );

在 Postgres 中,有一種非常好的方法可以做到這一點:

INSERT INTO keys(name, value) 
    SELECT 'blah', 'true'
WHERE NOT EXISTS (
    SELECT 1 FROM keys WHERE name='blah'
);

希望有幫助。-

在 Postgresql 9.5 中,您現在可以on conflict do nothing使用on conflict do nothing

insert into KEYS (name, value) values (
'blah', 'true') on conflict (name) do nothing;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM