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

Làm thế nào để cú pháp INSERT ... ON CONFLICT (id) DO UPDATE ... được sử dụng với một ID trình tự?

Ok chỉ cần làm việc nó ra. Tôi đọc bài viết tuyệt vời này từ Neil Conway: http://www.neilconway.org/docs/sequences /

Nơi anh ta cho thấy việc sử dụng DEFAULT từ khóa để yêu cầu DB sử dụng giá trị trình tự cho cột.

Vì vậy, đây là ví dụ được cập nhật hiện đang hoạt động:

INSERT INTO tbltest (
    tbltest_ID,
    tbltest_Name,
    tbltest_Description) 
VALUES 
(DEFAULT, 'new record','new record description'),
(4, 'existing record name','existing record description')
ON CONFLICT (tbltest_ID) DO UPDATE SET (
    tbltest_Name,
    tbltest_Description) = (
    excluded.tbltest_Name,
    excluded.tbltest_Description) RETURNING *;

Hy vọng điều này sẽ giúp ai đó;-)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể kết nối với postgres bằng jdbc trong pyspark shell

  2. Biểu diễn dữ liệu thưa thớt trong PostgreSQL

  3. Tìm tên máy chủ trong postgresql

  4. Các truy vấn trong pg_stat_activity bị cắt bớt?

  5. PostgreSQL Logical Replication Gotchas