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

Hvordan bruger man dynamiske kolonnenavne i en UPDATE- eller SELECT-sætning i en funktion?

I en UPDATE sætning i PL/pgSQL, skal tabelnavnet angives som et bogstav. Hvis du vil indstille tabelnavnet og kolonnerne dynamisk, skal du bruge EXECUTE kommando og indsæt forespørgselsstrengen sammen:

EXECUTE 'UPDATE ' || quote_ident(r.relname) ||
       ' SET ' || quote_ident(r.cols_list[1]) || ' = $1, ' || 
                  quote_ident(r.cols_list[2]) || ' = $2' ||
       ' WHERE ' || quote_ident(r.cols_list[1]) || ' = $3 AND ' ||
                    quote_ident(r.cols_list[2]) || ' = $4'
USING ncicd9, ncdesc, ocicd9, ocdesc;

USING klausul kan kun bruges til at erstatte dataværdier, som vist ovenfor.



  1. MySQL i skyen - Online migration fra Amazon RDS til EC2 Instance:Part One

  2. Læserløsninger til Special Islands-udfordringen

  3. Transformationelle historier på MariaDB OpenWorks-konferencen

  4. Upsert med en transaktion