sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur använder man dynamiska kolumnnamn i en UPDATE- eller SELECT-sats i en funktion?

I en UPDATE sats i PL/pgSQL, tabellnamnet måste anges som en bokstavlig. Om du vill ställa in tabellnamnet och kolumnerna dynamiskt, bör du använda EXECUTE kommando och klistra in frågesträngen:

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 sats kan endast användas för att ersätta datavärden, som visas ovan.



  1. Django Migrations:A Primer

  2. Vad är en tidsseriedatabas?

  3. Bygga en Microsoft Access-databas

  4. Vad är @@MAX_PRECISION i SQL Server?