Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

270
Views
¿Cómo actualizar solo una columna y evitar valores NULL para otros en node-postgres?

En este momento, en mi API, si solo quiero actualizar un valor como email , otros valores se vuelven NULL y también tengo que volver a escribir todo lo demás solo para actualizar una cosa.

El objeto JSON es este:

 { "username": "batman" }

Este será el resultado:

 { "message": "User Updated Successfully!", "user": { "user_id": 44, "name": null, "username": "batman", "email": null, "phone": null, "website": null } }

Entonces, esto me obliga a escribir todo el objeto JSON para que otros valores no se actualicen a NULL:

 { "name": "batman", "username": "batman", "email": "batman@cave.com", "phone": "0123456789", "website": "batman.com" }

Esta es la función de devolución de llamada para la solicitud PUT :

 const updateUser = async (req, res) => { const id = parseInt(req.params.id); const { name, username, email, phone, website } = req.body; try { const update = await db.query("UPDATE users SET name = $1, username = $2, email = $3, phone = $4, website = $5 WHERE user_id = $6 RETURNING *", [ name, username, email, phone, website, id, ]); res .status(200) .json({ message: "User Updated Successfully!", user: update.rows[0] }); } catch (err) { console.error(err); res.status(500).json({ message: "Something Went Wrong!" }); } };

¿Hay alguna forma de actualizar solo un valor sin que los demás se actualicen a NULL?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Logré resolver mi problema siguiendo las instrucciones de este artículo:

Actualización condicional en PostgreSQL

 UPDATE users SET name = COALESCE (NULLIF($1, ''), name), username = COALESCE (NULLIF($2, ''), username), email = COALESCE (NULLIF($3, ''), email), phone = COALESCE (NULLIF($4, ''), phone), website = COALESCE (NULLIF($5, ''), website) WHERE user_id = $6 RETURNING *;
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!