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

Postgres 9.5 BẬT MÍ DO CHỌN

Bạn có thể sử dụng CTE:

WITH cte AS (
   INSERT INTO "user"(timestamp, user_id, member_id)
   values ($1, $2, $3)
   ON CONFLICT (user_id, member_id) DO NOTHING
   RETURNING user_id
)
SELECT NULL AS result
WHERE EXISTS (SELECT 1 FROM cte)          -- success
UNION ALL
SELECT id 
FROM "user" 
WHERE user_id = $2 
  AND NOT EXISTS (SELECT 1 FROM cte);     -- conflict

Bản trình diễn DBFiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL DATEADD () Tương đương

  2. GORM tạo bản ghi có thể đã tồn tại

  3. Luồng được tìm nạp từ Postgres với jOOQ không trả về kết quả từ lớp học

  4. Làm thế nào để lấy tổng số bảng trong postgresql?

  5. Tạo đối tượng Django và Chuỗi Postgres