Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 28-oct-2003, 10:35   #1 (permalink)
svivar está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 7
Sentencia UPDATE mysql

Saludos

La siguiente sentencia no me funciona en mysq. La idea es actualizar el campo {lugar} de la tabla {b} si y solo si los registros del campo especie en la tabla {a} son iguales a los registros del campo especie en la tabla {b}. La sentencia es:

update b set b.lugar= ( select a.lugar from a where a.especie=b.especie )
svivar está desconectado   Responder Citando
Antiguo 28-oct-2003, 13:33   #2 (permalink)
Colaborador
Kaopectate ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2002
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.126
Hola svivar.

Yo me temo que ese tipo de composiciones (select dentro de un update) no son válidas para MySQL. Seguro algún gurú MySQL nos podría aclarar el asunto.

Saludos.
Kaopectate está desconectado   Responder Citando
Antiguo 28-oct-2003, 15:20   #3 (permalink)
gustavoang está en el buen camino
 
Avatar de gustavoang
 
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
No se puede y no hace falta colocar un "select" dentro de un "update", por que la sentencia "update" se estructuta así:

Update nombre_tabla Set nombre_campo=valor [Where nombre_campo2=valor]

(Si no colocamos "Where", se cambiarán todos los registros de esa tabla)

Los corchetes [] quieren decir que es opcional colocar lo que está dentro.

Por ejemplo:

Update miembros Set apellido='Narea' Where nombre='Gustavo'
(cambiaría todos los registros de la tabla donde el nombre sea "Gustavo")

Update miembros Set apellido='Narea'
(cambiaría todos los registros de la tabla)

----------

En tu caso, la sentencia quedaría así:

Update b Set b.lugar=a.lugar Where a.especie=b.especie

----------

Saludos.

Gustavo.
__________________
Gustavo Narea.
Venezuela.

Última edición por gustavoang; 28-oct-2003 a las 15:31.
gustavoang está desconectado   Responder Citando
Antiguo 30-oct-2003, 16:55   #4 (permalink)
svivar está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 7
Saludos Gustavo,

Ostras que no funciona, la sentencia que has enviado la parte del mysql que revisa la se queja con un:
[bio] ERROR 1109: Unknown table 'a' in where clause

Alguna otra salida ?

gracias
svivar está desconectado   Responder Citando
Antiguo 01-nov-2003, 00:32   #5 (permalink)
gustavoang está en el buen camino
 
Avatar de gustavoang
 
Fecha de Ingreso: julio-2003
Ubicación: Valencia - Venezuela
Mensajes: 253
Hola:

La verdad no entiendo porqué no te funciona.

Yo lo veo estructurado bien.
__________________
Gustavo Narea.
Venezuela.
gustavoang está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 12:08.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93