PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Tidak dapat PILIH dari klausa UPDATE RETURNING di postgres

Sebelum PostgreSQL 9.1 INSERT/UPDATE/DELETE hanya dapat digunakan sebagai pernyataan tingkat atas. Inilah mengapa Anda mendapatkan kesalahan sintaks.

Mulai dari 9.1 Anda dapat menggunakan pernyataan modifikasi data dengan ekspresi tabel umum. Contoh kueri Anda akan terlihat seperti ini:

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

Hati-hati dengan memilih dari tabel yang baru saja dimodifikasi. Anda bisa mendapatkan hasil yang membingungkan seperti itu. Karena kueri dieksekusi dalam snapshot yang sama, SELECT tidak akan melihat efek dari pernyataan 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. Fungsi kesamaan di Postgres dengan pg_trgm

  2. postgresql mengembalikan 0 jika nilai yang dikembalikan adalah nol

  3. Pelatihan PostgreSQL untuk MySQLer

  4. Nilai kesalahan tidak ada - masalah postgresql INSERT INTO

  5. Urutan tanpa celah PostgreSQL