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 originalINSERT INTO base1.cliente
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 originalSELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='cliente' AND COLUMN_NAME!='codigo' ;
quise hacer esto
Código SQL:
Ver originalINSERT INTO base1.cliente
SELECT (SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
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 originalINSERT INTO base1.cliente
SELECT (SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
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 originalCOLUMN 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 originalINSERT INTO base1.cliente(colum1,colum2)
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
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 originalDELETE FROM base2.tabla WHERE base1.tabla.Nombre=base2.tabla.Nombre;
me dice que la columna no se conoce.