sql >> Database teknologi >  >> RDS >> PostgreSQL

Kan ikke VÆLGE fra UPDATE RETURNING-klausulen i postgres

Før PostgreSQL 9.1 kunne INSERT/UPDATE/DELETE kun bruges som sætninger på øverste niveau. Det er derfor, du får en syntaksfejl.

Fra 9.1 kan du bruge datamodificerende udsagn med almindelige tabeludtryk. Dit eksempelforespørgsel ville se sådan ud:

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

Vær forsigtig med at vælge fra den netop ændrede tabel. Du kan få forvirrende resultater på den måde. Fordi forespørgslerne udføres i det samme øjebliksbillede, vil SELECT ikke se virkningerne af UPDATE-sætningen.



  1. Hvordan bruger man mysql JOIN uden ON-tilstand?

  2. 3 måder at liste alle lagrede procedurer i en SQL Server-database

  3. Installation af Oracle 32-bit klient på Windows Server Kører allerede 64-bit Oracle Database Server

  4. Eksport af data i SQL Server som INSERT INTO