Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Inserción de datos en tabla con campo auto_increment

Hola a todos, acudo una vez mas a su ayuda. sucede lo siguiente. tnego dos tablas de una base de datos MySQL que tienen la misma estructura:

tabla_temporal y tabla (por poner un ejemplo).

He necesitado crear un campo de tipo integer auto_increment ( por ende establezco el campo como primary key en ambas tablas).

tabla_temporal está vacía, mientras que tabla contiene x cantidad de registros. al crear el campo los registros de tabla obtienen el id ( campo nuevo creado ) 1,2,3, ....

en un momento determinado de la aplicacion cargo un registro a tabla_temp que obtiene al incio el id 1. pero necesito hacer una insercion de este registro
en tabla. y he alli el problema, porque me salta un error de duplicado. la situacion radica en que son muchos los campos de las tablas. entonces estaba usando la siguiente instruccion SQL
Código SQL [-]
Insert into tablas select * from tablas_temp

mi pregunta es si existe alguna forma de que no incluya el nuevo campo
para que no se genere el error sin tener que escribir toda la lista de campos
de ambas tablas excluyendo el nuevo campo autonumerico. espero me habeis comprendido. gracias por sus atenciones
Responder Con Cita
  #2  
Antiguo 24-08-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Mmm... que yo sepa, no. Siempre he pensado que el SQL debería tener una forma de listar las columnas indicando cuales queremos excluir.

Ahora, si esto que quieres es para hacerlo una sóla vez, pues ya habrías terminado de escribir los campos en lo que escribiste la pregunta

Otra forma es simplemente guardando la consulta en un archivo de texto y copiar y pegar cada vez que la quieras usar.

Otra manera, pero tampoco evitas escribir todas las columnas al menos una vez es creando una vista:

Código SQL [-]
create view vista_temp as
select 0, campo1, campo2, ...
from tabla_temp

y hacer la inserción desde la vista:

Código SQL [-]
insert into tabla select * from vista_temp

// Saludos
Responder Con Cita
  #3  
Antiguo 24-08-2011
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Gracias Roman por tus respuestas. si en realidad utilizo bastante esta consulta por eso les dire lo que hice. sencillamente cree una funcion
que me devuelve de una tabla todos los campos excepto el autoincremental

entonces hago la consulta así

Código SQL [-]
Insert into tabla (listacampos) select listacampos from tabla_temp

un gran saludo a todos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insercion tabla de otra base de datos amerika111 Varios 2 22-01-2010 05:08:18
Insercion datos Tabla SQL amerika111 Varios 1 10-12-2009 00:17:04
Creacion de Tabla e inserción de datos klionsis Varios 15 25-09-2008 10:29:00
limitar un campo tipo auto_increment... chileno MySQL 0 25-06-2007 15:03:35
Actualizar un campo de una tabla con datos que se encuentran en otra tabla Morphine SQL 4 15-12-2006 22:47:42


La franja horaria es GMT +2. Ahora son las 06:55:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi