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

seleccionar todos los campos excepto uno

Estas en el tema de seleccionar todos los campos excepto uno en el foro de Mysql en Foros del Web. tengo una base de datos donde las tablas tienen cientos de campos cada una y debo fusionar las bases de datos. son 10 bases de ...
  #1 (permalink)  
Antiguo 28/08/2012, 20:23
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
seleccionar todos los campos excepto uno

tengo una base de datos donde las tablas tienen cientos de campos cada una
y debo fusionar las bases de datos.

son 10 bases de datos
mi problema es que al hacer el insert into, las keys o ids de cada una de las bases de datos inician en 1. y yo solo ocupo insertar el resto de la informacion, pero las keys se repiten. entonces la solucion es insertar todo excepto ese campo.
ya que ese se autoincrementa solo y no es necesario.
pero no encuentro la instruccion sql que haga la excepcion de un campo
solo ocupo un select

select * from tabla except nombrecampo;
algo asi.
de antemano gracias

para meter datos de una tabla a otra hago esto

Código SQL:
Ver original
  1. INSERT INTO base1.cliente
  2. SELECT * FROM base2.cliente;

me marca error por duplicar la key, solo eso.

y esta otra consulta me muestra los campos de la base2
Código SQL:
Ver original
  1. SELECT COLUMN_NAME
  2. FROM INFORMATION_SCHEMA.COLUMNS
  3. WHERE TABLE_NAME='cliente' AND COLUMN_NAME!='codigo' ;


quise hacer esto


Código SQL:
Ver original
  1. INSERT INTO base1.cliente
  2. SELECT (SELECT COLUMN_NAME
  3. FROM INFORMATION_SCHEMA.COLUMNS
  4. WHERE TABLE_NAME='cliente' AND COLUMN_NAME!='codigo' ) FROM base2.cliente;

pero no funciono por que solo me regresa los campos pero no los separa por coma y por lo tanto marca error de sintaxys
asi que los copie y los pegue directamente en la instruccion poniendole comas y ahora me manda lo mismo que cuando ponia esta instruccion
Código SQL:
Ver original
  1. INSERT INTO base1.cliente
  2. SELECT (SELECT COLUMN_NAME
  3. FROM INFORMATION_SCHEMA.COLUMNS
  4. WHERE TABLE_NAME='cliente' AND COLUMN_NAME!='codigo' ) FROM base2.cliente;

pero ahora poco directamente los campos en el select excepto el campo codigo. que podra ser?
me manda este error
Código SQL:
Ver original
  1. COLUMN COUNT doesn't match value count at row 1
ya lo solucione

primero seleccione las columnas, me las regreso, solo copie y puse comas a las columnas y las meti alli

Código SQL:
Ver original
  1. INSERT INTO base1.cliente(colum1,colum2)
  2. SELECT colum1,colum2 FROM base2.cliente;

y listo.
ahora quiero que uno de los campos de la tabla sea unique.
el nombre quiero que sea unique para que no se puedan agregar repetidos.
como hago eso? ya busque mucho y no hayo nada.

Bueno ya lo logre
Código MySQL:
Ver original
  1. ALTER TABLE tabla ADD UNIQUE (`Nombre`);

ahora me manda error y se detiene la consulta si encuentra un nombre repetido.
ahora como hago para que no se detenga la consulta y siga insertando?

entonces se me ocurrio borrar los datos que existan en la otra tabla
pero me marca error

Código SQL:
Ver original
  1. DELETE FROM base2.tabla WHERE base1.tabla.Nombre=base2.tabla.Nombre;
me dice que la columna no se conoce.

Última edición por minombreesmm; 28/08/2012 a las 23:41

Etiquetas: excepto, select, sql, campos
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:13.