UPDATE con FROM y actualizaciones al estilo JOIN
Actualice filas usando valores de otra tabla con UPDATE ... FROM (PostgreSQL) y la instrucción estándar MERGE.
UPDATE con FROM y actualizaciones al estilo JOIN es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.
UPDATE básico
Cambie los valores de las filas coincidentes:
UPDATE users SET full_name = 'Alice Adams' WHERE id = 1;Varias columnas
Lista SET separada por comas:
UPDATE users
SET full_name = 'Alice', last_login = NOW(), visits = visits + 1
WHERE id = 1;Actualizar muchas filas
Haga coincidir más filas usando WHERE:
UPDATE orders SET status = 'archived'
WHERE created_at < NOW() - INTERVAL '5 years';UPDATE con subconsulta
Calcule el nuevo valor a partir de otra consulta:
UPDATE products
SET review_count = (
SELECT COUNT(*) FROM reviews WHERE reviews.product_id = products.id
);UPDATE … FROM (PostgreSQL)
Actualización al estilo JOIN: obtenga valores de otra tabla:
UPDATE products p
SET stock = i.qty
FROM inventory i
WHERE i.product_id = p.id;UPDATE … FROM con varias tablas
La lista FROM puede incluir varias tablas:
UPDATE invoices inv
SET tax_rate = r.rate
FROM users u
JOIN rates r ON r.country = u.country
WHERE inv.user_id = u.id;SQL estándar: UPDATE … FROM mediante una subconsulta correlacionada
Equivalente portable, aunque más lento:
UPDATE products p
SET stock = (SELECT qty FROM inventory i WHERE i.product_id = p.id);MERGE para INSERT/UPDATE/DELETE
PostgreSQL 15+ admite MERGE para operaciones combinadas; consulte la lección sobre UPSERT.
RETURNING de UPDATE
Recupere las filas actualizadas en un solo viaje de ida y vuelta:
UPDATE orders SET status = 'shipped', shipped_at = NOW()
WHERE id = $1
RETURNING id, status, shipped_at;Actualizar con CASE
Nuevos valores condicionales:
UPDATE orders
SET status = CASE
WHEN paid_at IS NOT NULL THEN 'paid'
WHEN created_at < NOW() - INTERVAL '24h' THEN 'expired'
ELSE status
END;Cuidado con omitir WHERE
UPDATE users SET active = false; actualiza TODAS las filas. En producción:
- Ejecute primero un SELECT para verificar el número de filas
- Use una transacción y compruébelo antes de COMMIT
- Use
BEGIN; ...; SELECT count(*) FROM users WHERE active = false; ROLLBACK;como simulación
Rendimiento de UPDATE
Un UPDATE crea una nueva versión de la fila y marca la anterior como obsoleta (MVCC). Las tablas con actualizaciones frecuentes pueden aumentar excesivamente de tamaño; esto se explica en la lección sobre VACUUM/MVCC.
Resumen
UPDATE … FROM es la actualización al estilo JOIN que facilita las correcciones masivas.
- Use siempre WHERE; no lo olvide nunca
- Use RETURNING para verificar
- Pruebe en una transacción con ROLLBACK
Comprobación rápida
¿Qué sintaxis de UPDATE permite hacer referencia a otra tabla en PostgreSQL?
Preguntas frecuentes
¿La lección «UPDATE con FROM y actualizaciones al estilo JOIN» es gratis?
Sí — el texto completo de «UPDATE con FROM y actualizaciones al estilo JOIN» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué aprenderé en «UPDATE con FROM y actualizaciones al estilo JOIN»?
Actualice filas usando valores de otra tabla con UPDATE ... FROM (PostgreSQL) y la instrucción estándar MERGE. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SQL Academy?
No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «UPDATE con FROM y actualizaciones al estilo JOIN»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SQL Academy?
Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- INSERT con varias filas
- UPSERT: ON CONFLICT DO UPDATE (PostgreSQL)
- UPDATE con FROM y actualizaciones al estilo JOIN
- DELETE con USING y patrones seguros