sql >> Databáze >  >> RDS >> PostgreSQL

Nelze VYBRAT z klauzule UPDATE RETURNING v postgresu

Před PostgreSQL 9.1 bylo INSERT/UPDATE/DELETE možné používat pouze jako příkazy nejvyšší úrovně. To je důvod, proč se zobrazuje chyba syntaxe.

Počínaje verzí 9.1 můžete používat příkazy upravující data s běžnými tabulkovými výrazy. Váš příklad dotazu by vypadal takto:

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

Buďte opatrní při výběru z právě upravené tabulky. Můžete tak získat matoucí výsledky. Protože jsou dotazy prováděny ve stejném snímku, SELECT neuvidí účinky příkazu UPDATE.



  1. Získejte seznam všech sloupců Null a Not Null v databázi SQL Server - SQL Server / Výukový program T-SQL, část 53

  2. Zkoumání chyby ORA 028513 DG4ODBC

  3. Použití Oracle JDeveloper s databázovou službou MySQL na platformě Oracle Cloud, část 1

  4. Jak stáhnout osolené heslo z databáze a auth uživatele?