Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/06/2015, 04:50
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Sustituir valores en una columna por otros de una tabla diferente

Si limito el "update" a una fila concreta:

Código SQL:
Ver original
  1. UPDATE parcelas SET id_municipio=(SELECT municipio.id FROM municipio WHERE municipio.nombre=parcelas.municipio) WHERE parcelas.id='1' ;

Y funciona. Pero no sé cómo hacerlo con todas las filas.
Sobre esa base, se me ocurre esta función, pero hay algo que no va: (me da error en la variable 'x')
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION actualizar_id_mun() RETURNS void AS
  2. $BODY$
  3. DECLARE
  4. x INT;
  5. BEGIN
  6. x:=1;
  7. WHILE (x<SELECT COUNT(*) FROM socios) LOOP
  8. UPDATE parcelas SET id_municipio=(SELECT municipio.id FROM municipio WHERE municipio.nombre=parcelas.municipio) WHERE parcelas.id=x;
  9. x++;
  10. END LOOP;
  11. END;
  12. $BODY$
  13. LANGUAGE SQL VOLATILE NOT LEAKPROOF
  14. COST 100;
__________________
Mi calculadora en Qt

Última edición por dehm; 11/06/2015 a las 05:32