PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Не може да се ИЗБИРА от клауза UPDATE RETURNING в postgres

Преди PostgreSQL 9.1 INSERT/UPDATE/DELETE можеше да се използва само като оператори от най-високо ниво. Ето защо получавате синтактична грешка.

Започвайки от 9.1, можете да използвате изрази за модифициране на данни с общи таблични изрази. Вашата примерна заявка би изглеждала така:

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

Внимавайте с избора от току-що променената таблица. По този начин можете да получите объркващи резултати. Тъй като заявките се изпълняват в една и съща моментна снимка, SELECT няма да види ефекта от оператора 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. Как PostgreSQL налага ограничението UNIQUE / какъв тип индекс използва?

  2. Извличане на максимума от вашите PostgreSQL индекси

  3. конвертирайте геометричния формат на Postgres в WKT

  4. подзаявката в FROM трябва да има псевдоним

  5. Намерете разликата между времевите марки в секунди в PostgreSQL