PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sử dụng CHÈN ... BẬT MÀ KHÔNG PHẢI TRỞ LẠI các hàng không thành công

Hơi dài dòng, nhưng tôi không thể nghĩ ra bất cứ điều gì khác:

with all_tags (name) as (
  values ('tag10'), ('tag6'), ('tag11')
), inserted (id, name) as (
   INSERT INTO tags (name)
   select name 
   from all_tags
   ON CONFLICT DO NOTHING 
   returning id, name
)
select t.id, t.name, 'already there'
from tags t
  join all_tags at on at.name = t.name
union all
select id, name, 'inserted'
from inserted;

Lựa chọn bên ngoài từ các thẻ tags xem ảnh chụp nhanh của bảng như trước đây các thẻ mới đã được chèn. Cột thứ ba với hằng số chỉ ở đó để kiểm tra truy vấn để người ta có thể xác định hàng nào đã được chèn và hàng nào không.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. làm cách nào tôi có thể lấy tất cả id bắt đầu từ một id đã cho một cách đệ quy trong một bảng postgresql tham chiếu đến chính nó?

  2. Trả về 0 nếu không tìm thấy bản ghi

  3. Cài đặt Postgis:loại hình học không tồn tại

  4. Kết quả không mong muốn từ truy vấn SQL với GIỮA dấu thời gian

  5. Cách gắn khối lượng postgresql bằng Aws EBS trong Kubernete