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

Không thể CHỌN từ mệnh đề CẬP NHẬT TRẢ LẠI trong postgres

Trước PostgreSQL 9.1, INSERT / UPDATE / DELETE chỉ có thể được sử dụng như các câu lệnh cấp cao nhất. Đây là lý do tại sao bạn gặp lỗi cú pháp.

Bắt đầu từ 9.1, bạn có thể sử dụng các câu lệnh sửa đổi dữ liệu với các biểu thức bảng phổ biến. Truy vấn mẫu của bạn sẽ giống như sau:

WITH updated AS (UPDATE test SET description = 'test' RETURNING id)
SELECT * FROM test WHERE id IN (SELECT id FROM updated);

Hãy cẩn thận với việc chọn từ bảng vừa sửa đổi. Bạn có thể nhận được kết quả khó hiểu theo cách đó. Vì các truy vấn được thực thi trong cùng một ảnh chụp nhanh, SELECT sẽ không thấy các tác động của câu lệnh UPDATE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự trở lại của XFS trên Linux

  2. Tóm lại, lập chỉ mục cơ sở dữ liệu với B + tree và Hash để so sánh

  3. Tạo bảng tạm thời trong SQL

  4. Postgres sao chép Heroku Production DB sang DB phát triển cục bộ

  5. Làm cách nào để lấy dữ liệu cục bộ vào cơ sở dữ liệu chỉ đọc bằng dplyr?