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

mover datos a otra tabla.

Estas en el tema de mover datos a otra tabla. en el foro de Mysql en Foros del Web. Hola que tal, Miren mi problema es el siguiente, tengo 1 tabla que es la siguiente: Tabla estables : Código: +--------+--------------+------+-----+---------+----------------+ | Field | Type ...
  #1 (permalink)  
Antiguo 26/08/2009, 00:02
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 12 años
Puntos: 2
mover datos a otra tabla.

Hola que tal, Miren mi problema es el siguiente, tengo 1 tabla que es la siguiente:
Tabla estables:
Código:
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| cc_id  | int(11)      | NO   | PRI | NULL    | auto_increment | 
| ccv    | int(11)      | YES  |     | NULL    |                | 
| ccexp  | varchar(12)  | YES  |     | NULL    |                | 
| ccn    | varchar(100) | YES  |     | NULL    |                | 
| cctype | varchar(100) | YES  |     | NULL    |                | 
| ssid   | varchar(100) | YES  |     | NULL    |                | 
+--------+--------------+------+-----+---------+----------------+
6 rows in set (0.01 sec)
En dicha tabla tengo "muchos datos", alguno de esos datos que no pasaron cierta prueba los tengo que mover a otra tabla Exactamente igual a esta, es decir:

Tabla no_aprobados
Código:
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| cc_id  | int(100)     | NO   | PRI | NULL    | auto_increment | 
| ccv    | int(11)      | YES  |     | NULL    |                | 
| ccexp  | varchar(12)  | YES  |     | NULL    |                | 
| ccn    | varchar(100) | YES  |     | NULL    |                | 
| cctype | varchar(100) | YES  |     | NULL    |                | 
| ssid   | varchar(100) | YES  |     | NULL    |                | 
+--------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)
Como se ve es exactamente la misma estructura y con los mismos campos, ahora como lo que quiero es que desde el panel de administrador q esta en PHP el administrador mueva cierto dato a la otra tabla que se llama no aprobados en este caso moveria todos los datos de un trgistro, es decir: ccv, ccexp ccn, etc...

Mi pregunta es: ¿ Como puedo mover dicho registro sin la necesidad de hacer tantas consultas, es decir podria seleccionar todos los campos de un registro de la manera siguiente:
select * from stables where ccn ="blabla";
Esto me seleccionaria todos los registtos cuyo valor de ccn sea igual a "blabla" y dicho regidtro lo quiero eliminar de esta tabla y moverlo a la tabla no aprobado.

Lo que se me ocurre es mediante un textbox poner el valor del ccn del registo a mover y mandarlo a una pagina que lo procece que entonces seria:
Código PHP:
<?PHP
$_POST
[ccn]=$ccn  #obtengo dato ccn
mysql_query("select * from stables where ccn ='$ccn'") or die ("no seleccionado"); #selecciono todos los registros cuyo dato sea igual al que e obtenido
mysql_query("insert into no_aprobados"(ccv,ccexp,ccn,cctype,ssidvalues #inserto todos los datos seleccionados en la tabla NO APROBADOS
('$_POST[cc_id]',
  
'$_POST[ccv]',
  
'$_POST[ccexp]'
  '$_POST[cctype]'
);
mysql_query("DELETE FROM aprobados where cn =\"$ccn\""); # ELIMINO LOS DATOS QUE COPIE A LA NUEVA TABLA.
?>
Mi duda es, existe alguna otra forma de simplificar esto? alguna funccion de mysql qye mediante cierto dato a consultar de un registro mueva todos esos datos a otra tabla tal y como lo quiero hacer?.
Saludos
  #2 (permalink)  
Antiguo 26/08/2009, 02:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 11 años, 8 meses
Puntos: 300
Respuesta: mover datos a otra tabla.

Sí existe esa forma
Con esto insertas (observa que no te he puesto código PHP, que no debemos escribir en este foro):
INSERT INTO no_aprobados (ccv,ccexp,ccn,cctype,ssid) SELECT ccv,ccexp,ccn,cctype,ssid FROM stables WHERE ccn = 'loquesea'

y luego los borras de la primera tabla
DELETE FROM stables WHERE ccn = 'loquesea'

Esta es la idea.
  #3 (permalink)  
Antiguo 26/08/2009, 16:21
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 12 años
Puntos: 2
Respuesta: mover datos a otra tabla.

Cita:
Iniciado por jurena Ver Mensaje
Sí existe esa forma
Con esto insertas (observa que no te he puesto código PHP, que no debemos escribir en este foro):
INSERT INTO no_aprobados (ccv,ccexp,ccn,cctype,ssid) SELECT ccv,ccexp,ccn,cctype,ssid FROM stables WHERE ccn = 'loquesea'

y luego los borras de la primera tabla
DELETE FROM stables WHERE ccn = 'loquesea'

Esta es la idea.
En tu consulta no pones un: values (ccv,ccexp,ccn,cctype tec...)
esto lo hace solo con el select?
es decir despues del insert into le das el select y ese es el q usa para guardar? sin necesidad de ponerle la sentencia VALUES??
saludos
  #4 (permalink)  
Antiguo 26/08/2009, 16:24
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 9 meses
Puntos: 360
Respuesta: mover datos a otra tabla.

Cita:
En tu consulta no pones un: values (ccv,ccexp,ccn,cctype tec...)
esto lo hace solo con el select?
es decir despues del insert into le das el select y ese es el q usa para guardar? sin necesidad de ponerle la sentencia VALUES??
saludos
Correcto th3r0rn. Esa es la sintaxis correcta.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 00:19.