sql >> Database >  >> RDS >> PostgreSQL

Kan niet SELECTEREN uit de clausule UPDATE RETURNING in postgres

Vóór PostgreSQL 9.1 konden INSERT/UPDATE/DELETE alleen worden gebruikt als instructies op het hoogste niveau. Dit is de reden waarom u een syntaxisfout krijgt.

Vanaf 9.1 kunt u instructies voor het wijzigen van gegevens gebruiken met algemene tabeluitdrukkingen. Uw voorbeeldquery zou er als volgt uitzien:

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

Wees voorzichtig met het selecteren uit de zojuist gewijzigde tabel. Op die manier kun je verwarrende resultaten krijgen. Omdat de query's in dezelfde snapshot worden uitgevoerd, ziet de SELECT de effecten van de UPDATE-instructie niet.



  1. Beheerprogramma's voor SQL Server 2017

  2. Php - Uw PHP-installatie lijkt de MySQL-extensie te missen die vereist is voor WordPress

  3. JSONB gebruiken in PostgreSQL:effectief opslaan en indexeren van JSON-gegevens in PostgreSQL

  4. Replicatieproblemen van niet-GTID naar GTID verwerken MariaDB-databaseclusters