Ver Mensaje Individual
  #17 (permalink)  
Antiguo 30/04/2008, 01:01
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Re: Copiar datos entre tablas

El problema podria venir por el NOT NULL que tienes en ban_ip. Tienes que darle algun valor, no se si lo puedes sacar de alguna tabla, si no tendras que forzarlo a 0 o a un valor concreto.


Código:
INSERT INTO nuke_bbbanlist (ban_userid, ban_ip)
SELECT u.user_id, 'XXXXX' as ban_ip
  FROM nuke_users u LEFT JOIN nuke_bbbanlist b
             ON u.user_id = b.ban_userid WHERE b.ban_userid Is Null
donde XXXX es el valor que pones a ban_ip.

no se que implicaciones a nivel de aplicación puede tener el hecho de forzar el valor de ese campo.

Otro problema que veo es que hay diferencias en el formato de

nuke_bbbanlist.ban_userid-->mediumint(8)
nuke_users.user_id-->int(11)

yo igualaria esos formatos, pero antes deberas revisar si ese cambio puede afectar a otras tablas, es decir tienes que mirar en todas las tablas que tengan el id de usuario y que todos tengan el mismo formato int(11).

Por otro lado ban_userid puede estar repetido por lo que igual con la siguiente consulta tambien te funciona, pero luego ten claro que puedes tener usuarios baneados repetidos y que la ip que pongas tendria que ser nueva para assegurar que las parejas ip/iduser son unicas...

Código:
INSERT INTO nuke_bbbanlist (ban_userid, ban_ip)
SELECT u.user_id, 'XXXXX' as ban_ip
  FROM nuke_users u;


Quim

Última edición por quimfv; 30/04/2008 a las 01:12