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

Volcar base de datos de una a otra

Estas en el tema de Volcar base de datos de una a otra en el foro de Bases de Datos General en Foros del Web. Tengo esta sentencia: $sql= " INSERT INTO inmuebles (Tipo, Vivienda, Zona) SELECT inmuebles2.nomestado, inmuebles2.nomtipoinmueble, inmuebles2.nomzona,FROM inmuebles2"; Y quisiera saber si sintacticamente es correcta por que ...
  #1 (permalink)  
Antiguo 26/11/2004, 08:32
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 21 años, 5 meses
Puntos: 1
Volcar base de datos de una a otra

Tengo esta sentencia:

$sql= " INSERT INTO inmuebles (Tipo, Vivienda, Zona) SELECT inmuebles2.nomestado, inmuebles2.nomtipoinmueble, inmuebles2.nomzona,FROM inmuebles2";


Y quisiera saber si sintacticamente es correcta por que cuando ejecuto el query tengo este error:

Column count doesn't match value count at row 1

Gracias anticipadas
  #2 (permalink)  
Antiguo 26/11/2004, 08:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 21 años, 1 mes
Puntos: 11
No es correcta, dado que los nombres de los campos de origen son distintos a los nombre de los campos de destino, prueba esto:


$sql= " INSERT INTO inmuebles (Tipo, Vivienda, Zona) SELECT inmuebles2.nomestado as Tipo, inmuebles2.nomtipoinmueble as Vivienda, inmuebles2.nomzona as Zona FROM inmuebles2";

Ademas sobraba una coma luego de inmuebles2.nomzona

Última edición por claudiovega; 26/11/2004 a las 08:39
  #3 (permalink)  
Antiguo 26/11/2004, 08:49
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 21 años, 5 meses
Puntos: 1
Hola de nuevo.

Ya probe y sigo teniendo el mismo error...

Mas ayuda please
  #4 (permalink)  
Antiguo 26/11/2004, 08:53
 
Fecha de Ingreso: septiembre-2004
Ubicación: Viviendo en Manresa(Barcelona)
Mensajes: 230
Antigüedad: 20 años, 2 meses
Puntos: 0
Despues del select no tendria que haber también la tabla donde los insertas?Pruebalo
  #5 (permalink)  
Antiguo 26/11/2004, 08:54
Avatar de chr_c  
Fecha de Ingreso: junio-2003
Mensajes: 204
Antigüedad: 21 años, 5 meses
Puntos: 0
prueba asi
$sql= " INSERT INTO inmuebles (Tipo, Vivienda, Zona) values(SELECT inmuebles2.nomestado as Tipo, inmuebles2.nomtipoinmueble as Vivienda, inmuebles2.nomzona as Zona FROM inmuebles2)";
  #6 (permalink)  
Antiguo 26/11/2004, 08:58
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 21 años, 5 meses
Puntos: 1
chr_c si hago lo que me dices arriba me sale este error:

You have an error in your SQL syntax near 'SELECT inmuebles2.referencia as Ref, inmuebles2.nomestado as Tipo, inmuebles2.no' at line 1

Última edición por Operadormail; 26/11/2004 a las 09:03
  #7 (permalink)  
Antiguo 26/11/2004, 11:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Operadormail ...
Supongo que usas Mysql? (dato que debes decir y que versión ...)

Las "subconsultas" en Mysql sólo se pueden usar desde PHP 4.1.x en adelante .. si usas una versión inferior a esta tendrás que usar otra opción.

Si explicas que deseas hacer .. tal vez se vea la solución . .ya sea integramente en SQL (por eso moví el mensaje al foro de "Base de datos") o bien con algo de PHP por médio .. Pero primero habría que aclarar si puedes hacerlo sólo vía SQL que es lo ideal siempre.


Un saludo,
  #8 (permalink)  
Antiguo 26/11/2004, 13:29
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 21 años, 1 mes
Puntos: 11
Indica la estructura de tus tablas para ver que puede pasar y tambien para hacver pruebas y darte asi una solucion que sepamos es la correcta. Indica tambien la version de mysql que usas, para averiguar si soporta o no la sintaxis que te indiquemos.
  #9 (permalink)  
Antiguo 28/11/2004, 03:13
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 21 años, 5 meses
Puntos: 1
HOla de nuevo:

Esta es la estructura de la tabla de destino:

CREATE TABLE `inmuebles` (
`Ref` int(5) NOT NULL default '0',
`Tipo` varchar(40) NOT NULL default '',
`Estado` varchar(40) NOT NULL default '',
`Zona` varchar(255) NOT NULL default '',
`Precio` int(30) NOT NULL default '0',
`Suelos` varchar(30) NOT NULL default '',
`Habitaciones` varchar(255) NOT NULL default '',
`Baños` varchar(255) NOT NULL default '',
`Aseos` varchar(255) NOT NULL default '',
`Amueblado` varchar(255) NOT NULL default '',
`Garaje` varchar(255) NOT NULL default '',
`Trastero` varchar(255) NOT NULL default '',
`Calefaccion` varchar(255) NOT NULL default '',
`Exterior` varchar(255) NOT NULL default '',
`Caracteristicas` varchar(255) NOT NULL default '',
`foto1` varchar(40) NOT NULL default '',
`foto2` varchar(40) NOT NULL default '',
`foto3` varchar(40) NOT NULL default '',
`foto4` varchar(40) NOT NULL default ''
) TYPE=MyISAM;



Y esta es la estructura de la tabla de origen de los datos


CREATE TABLE `inmuebles2` (
`referencia` int(5) NOT NULL default '0',
`nomestado` varchar(40) NOT NULL default '',
`nomtipoinmueble` varchar(40) NOT NULL default '',
`direccion` varchar(255) NOT NULL default '',
`codprovincia` varchar(40) NOT NULL default '',
`codlocalidad` varchar(40) NOT NULL default '',
`codpostal` varchar(40) NOT NULL default '',
`nomlocalidad` varchar(255) NOT NULL default '',
`nomprovincia` varchar(255) NOT NULL default '',
`codzona` varchar(40) NOT NULL default '',
`nomzona` varchar(255) NOT NULL default '',
`precio` int(30) NOT NULL default '0',
`preciopts` int(30) NOT NULL default '0',
`preciocomprador` int(30) NOT NULL default '0',
`preciocomppts` int(30) NOT NULL default '0',
`supconstruida` varchar(30) NOT NULL default '',
`suputil` varchar(30) NOT NULL default '',
`habitaciones` varchar(255) NOT NULL default '',
`cocina` varchar(255) NOT NULL default '',
`banos` varchar(255) NOT NULL default '',
`aseos` varchar(255) NOT NULL default '',
`amueblado` varchar(255) NOT NULL default '',
`garaje` varchar(255) NOT NULL default '',
`trastero` varchar(255) NOT NULL default '',
`calefaccion` varchar(255) NOT NULL default '',
`exterior` varchar(255) NOT NULL default '',
`orientacion` varchar(255) NOT NULL default '',
`vistas` varchar(255) NOT NULL default '',
`puertas` varchar(255) NOT NULL default '',
`puertappal` varchar(255) NOT NULL default '',
`ventanas` varchar(255) NOT NULL default '',
`suelos` varchar(255) NOT NULL default '',
`salon` varchar(255) NOT NULL default '',
`armarios` varchar(255) NOT NULL default '',
`terrazas` varchar(255) NOT NULL default '',
`galerias` varchar(255) NOT NULL default '',
`gas` varchar(255) NOT NULL default '',
`plantas` varchar(255) NOT NULL default '',
`terreno` varchar(255) NOT NULL default '',
`ascensor` varchar(255) NOT NULL default '',
`conserje` varchar(255) NOT NULL default '',
`gastoscomunidad` varchar(255) NOT NULL default '',
`gastoscomunidadpts` varchar(255) NOT NULL default '',
`antiguedad` varchar(255) NOT NULL default '',
`codconservacion` varchar(255) NOT NULL default '',
`conservacion` varchar(255) NOT NULL default '',
`cargas` varchar(255) NOT NULL default '',
`viven` varchar(255) NOT NULL default '',
`llaves` varchar(255) NOT NULL default '',
`observaciones` varchar(255) NOT NULL default '',
`observinternas` varchar(255) NOT NULL default '',
`destacado` varchar(255) NOT NULL default '',
`codpropietario` varchar(30) NOT NULL default '',
`codcomercial` varchar(30) NOT NULL default '',
`nompropietario` varchar(255) NOT NULL default '',
`nomcomercial` varchar(255) NOT NULL default '',
`internet` varchar(30) NOT NULL default '',
`vendido` varchar(255) NOT NULL default '',
`fechaventa` varchar(255) NOT NULL default '',
`expimagen` varchar(255) NOT NULL default '',
`publicidad` varchar(255) NOT NULL default '',
`codtipoedificio` varchar(255) NOT NULL default '',
`fechacaptacion` varchar(255) NOT NULL default '',
`cartel` varchar(255) NOT NULL default '',
`comision` varchar(255) NOT NULL default '',
`preciom2` varchar(255) NOT NULL default '',
`preciom2pts` varchar(255) NOT NULL default '',
`portero` varchar(255) NOT NULL default '',
`huecosint` varchar(255) NOT NULL default '',
`huecosext` varchar(255) NOT NULL default '',
`huecospatio` varchar(255) NOT NULL default '',
`huecospatmanzana` varchar(255) NOT NULL default '',
`jardines` varchar(255) NOT NULL default '',
`fachada` varchar(255) NOT NULL default '',
`pavimentos` varchar(255) NOT NULL default '',
`paramentos` varchar(255) NOT NULL default '',
`carpinteriainterior` varchar(255) NOT NULL default '',
`carpinteriaexterior` varchar(255) NOT NULL default '',
`anuncio` varchar(255) NOT NULL default '',
`foto1` varchar(40) NOT NULL default '',
`foto2` varchar(40) NOT NULL default '',
`foto3` varchar(40) NOT NULL default '',
`foto4` varchar(40) NOT NULL default '',
`foto5` varchar(40) NOT NULL default '',
`foto6` varchar(40) NOT NULL default '',
`codsedeid` varchar(40) NOT NULL default ''
) TYPE=MyISAM;


El error que me da es:

Column count doesn't match value count at row 1

Gracias por la paciencia

Última edición por Operadormail; 28/11/2004 a las 03:16
  #10 (permalink)  
Antiguo 28/11/2004, 10:09
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 21 años, 5 meses
Puntos: 1
Estructura

Estas son las bases de datos...

Como puedo volcar los datos de una a otra????
Uso MySQL 5.0
  #11 (permalink)  
Antiguo 29/11/2004, 05:17
 
Fecha de Ingreso: febrero-2002
Mensajes: 442
Antigüedad: 22 años, 9 meses
Puntos: 2
Asi te respondio Claudio Vega:
$sql= " INSERT INTO inmuebles (Tipo, Vivienda, Zona) SELECT inmuebles2.nomestado as Tipo, inmuebles2.nomtipoinmueble as Vivienda, inmuebles2.nomzona as Zona FROM inmuebles2";

El campo "Vivienda" No existe en ninguna de las 2 tablas... PRESTA MAS ATENCION.

Otra cosa... tene cuidado con el espacio que dejas delante del Query.

Caludio Vega te respondio bien... ya que los nombres de los campos de la tabla donde insertas deben tener el mismo nombre que el de los campos que seleccionas de la otra tabla.... Por esa razon Claudio te agrego los ALIAS en los campos seleccionados.

Saludos
__________________
tech-nico.com
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 23:46.