sql >> Databasteknik >  >> RDS >> PostgreSQL

Uppdatera en tabell och visa uppdaterade rader med ett enda SQL-kommando

Eftersom det här är läxor lämnar jag något åt ​​dig.

Enskild SQL-sats

Börja läsa om RETURNING klausul i UPDATE kommandot i manualen .

Ett annat alternativ (för mer komplexa scenarier) skulle vara en datamodifierande CTE . Du behöver fortfarande RETURNING klausul för det.

Eller så kan du skapa en funktion du kan ringa in ett enda uttalande, men det skulle bryta mot ditt krav på att endast använda enkla DML-kommandon.

Enstaka transaktion

Om mer än en enskild sats är tillåten skulle ett annat alternativ vara en enkel UPDATE plus enkel SELECT insvept i en transaktion .




  1. SQLSTATE[42000]:Syntaxfel eller åtkomstöverträdelse:1066 Inte unik tabell/alias på relation

  2. förhindra sql-injektion

  3. mysql-uppdatering - hoppa över tomma fält?

  4. förberedda uttalanden med psycopg