sql >> Database >  >> RDS >> PostgreSQL

Hoe dynamische kolomnamen te gebruiken in een UPDATE- of SELECT-instructie in een functie?

In een UPDATE statement in PL/pgSQL, moet de tabelnaam letterlijk worden opgegeven. Als u de tabelnaam en de kolommen dynamisch wilt instellen, moet u de EXECUTE . gebruiken commando en plak de queryreeks samen:

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;

De USING clausule kan alleen worden gebruikt voor het vervangen van gegevenswaarden, zoals hierboven weergegeven.



  1. MySQL verwijdert dubbele records maar houdt de laatste bij

  2. De wizard Kruistabelquery gebruiken in Access

  3. Inleiding tot Python SQL-bibliotheken

  4. Hoe reset ik het standaardgebruikerswachtwoord van postgresql 9.2 (meestal 'postgres') op mac os x 10.8.2?