PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Pembaruan multi-baris PostgreSQL di Node.js

Contoh di bawah ini didasarkan pada pg-promise perpustakaan, dan metode helpers.update:

// library initialization, usually placed in its own module:
const pgp = require('pg-promise')({
    capSQL: true // capitalize all generated SQL
});

const db = pgp(/*your connection details*/);

// records to be updated:
const updateData = [
    {id: 1, value: 1234},
    {id: 2, value: 5678},
    {id: 3, value: 91011}
];

// declare your ColumnSet once, and then reuse it:
const cs = new pgp.helpers.ColumnSet(['?id', 'value'], {table: 'fit_ratios'});

// generating the update query where it is needed:
const update = pgp.helpers.update(updateData, cs) + ' WHERE v.id = t.id';
//=> UPDATE "fit_ratios" AS t SET "value"=v."value"
//   FROM (VALUES(1,1234),(2,5678),(3,91011))
//   AS v("id","value") WHERE v.id = t.id

// executing the query:
await db.none(update);

Metode menghasilkan pembaruan multi-baris ini dapat dicirikan sebagai:

  • sangat cepat, karena bergantung pada jenis ColumnSet yang mengimplementasikan cache cerdas untuk pembuatan kueri
  • benar-benar aman, karena semua tipe data melalui mesin pemformatan kueri pustaka untuk memastikan semuanya diformat dan diloloskan dengan benar.
  • sangat fleksibel, karena sintaks ColumnConfig canggih yang didukung untuk definisi kolom.
  • sangat mudah digunakan, karena antarmuka yang disederhanakan diimplementasikan oleh pg-promise.

Perhatikan bahwa kami menggunakan ? di depan kolom id untuk menunjukkan bahwa kolom adalah bagian dari kondisi, tetapi tidak untuk diperbarui. Untuk sintaks kolom lengkap, lihat kelas Column dan struktur ColumnConfig.

Pertanyaan terkait:Sisipan multi-baris dengan pg-promise.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memahami Batasan Pemeriksaan di PostgreSQL

  2. Memanggil fungsi atau prosedur yang tersimpan tidak akan memasukkan dan mempertahankan perubahan

  3. Melakukan transaksi saat menjalankan Fungsi postgreql

  4. Lokasi default database PostgreSQL di Linux

  5. Bidang gabungan CTE rekursif dengan orang tua dari titik sewenang-wenang