Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problema query

Estas en el tema de problema query en el foro de Mysql en Foros del Web. Tengo este query para modificar un campo de una tabla pero me da error @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original UPDATE wp_usermeta a SET a.meta_value ...
  #1 (permalink)  
Antiguo 09/03/2015, 09:20
Avatar de jodatelo  
Fecha de Ingreso: marzo-2010
Ubicación: Ecuador
Mensajes: 65
Antigüedad: 14 años, 1 mes
Puntos: 1
problema query

Tengo este query para modificar un campo de una tabla pero me da error

Código MySQL:
Ver original
  1. UPDATE wp_usermeta a
  2. SET a.meta_value = 'a:1:{s:15:"bbp_participant";b:1;}'
  3. WHERE a.meta_key LIKE ('wp_capabilities') AND a.user_id NOT IN(
  4. SELECT DISTINCT u.user_id
  5. FROM wp_usermeta u
  6. WHERE u.meta_key LIKE ('last_login_time')
  7. )
  #2 (permalink)  
Antiguo 09/03/2015, 09:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: problema query

Te da error porque en MySQL no puedes actualizar la misma tabla que lees en la misma sentencia. Es un problema de seguridad de procesos a nivel programación del kernel de MySQL.
Lo que quieres hacer se debe hacer en dos queries separadas: 1) consultas, 2, actualizas.
El único modo de hacer una sola llamada para ambnas cosas desde la aplicación es usando stored procedures.

Este es un tema repetitivo. Se nos ha consultado el mismo problema infinidad de veces, y la respuesta es siemrpe la misma.

Nota: No todos los DBMS tienen esta restricción.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, query, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:33.