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

Postgres UPSERT sử dụng lại các giá trị cột từ INSERT vào ngày CẬP NHẬT

Có, có bảng đặc biệt EXCLUDED cho mục đích:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string>') 
ON CONFLICT (id) DO UPDATE SET data = EXCLUDED.data;

Giống như hướng dẫn giải thích :

Cũng hoạt động cho các INSERT nhiều hàng:

INSERT INTO tbl (id, data)
VALUES (1, '<data_string1>') 
     , (2, '<data_string2>') 
     , (3, '<data_string3>') 
ON CONFLICT (id) DO UPDATE
SET data = EXCLUDED.data;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql ĐẶT HÀNG BẰNG nhiều giá trị theo thứ tự cụ thể?

  2. Postgres không thành công với 'không thể mở tệp ánh xạ quan hệ global / pg_filenode.map'

  3. Làm cách nào để thay đổi cột hiện có thành Identity trong PostgreSQL 11.1

  4. Quét chỉ mục để so sánh nhiều cột - thứ tự cột chỉ mục không đồng nhất

  5. Truy vấn SQL để phân trang với nhiều cột; hiểu toán tử HOẶC