PDA

Ver la Versión Completa : copiar datos en la misma tabla


jourdan
13-05-2003, 22:59:00
Hola a todos, como puedo copiar datos en la misma tabla, trato de usar lo siguiente pero me marca error:

insert into Clientes(Cliente, rfc)
SELECT Cliente, rfc
FROM Clientes
where Cliente_id = 5

En este ejemplo pretendo duplicar en la misma tabla el cliente No. 5, relmente esto lo quiero transladar para copiar datos de facturas y ordenes de trabajo que llevan mucha información y generlamente cambian muy poco los datos.
De antemano muchas gracias

Alejandro Jourdan:D

__cadetill
13-05-2003, 23:02:33
prueba a poner algo estilo...

insert into clientes a (codigo, nombre,.....)
select 6, nombre,...
from clientes b
where codigo = 5

al hacer cosas asi has de tener en cuenta la Primary Key de la tabla

roman
13-05-2003, 23:13:09
Posteado originalmente por cadetill
al hacer cosas asi has de tener en cuenta la Primary Key de la tabla

Así es. Y también cualquier otra clave única.

// Saludos

jourdan
14-05-2003, 00:38:02
una pregunta este codigo debe de funcionar con cualquier base de datos sql o funciona con alguna en especial??

De antemano gracias

jourdan
14-05-2003, 00:52:12
lo probe con mysql y con sql server 2000 y en ambos casos me marca error, en las dos funciona bien el select pero a la hora de poner la primera linea con el insert es donde marca error.

Alguna idea

De antemano gracias

Saludos

jourdan
14-05-2003, 01:41:00
Con SQL Server y lo pude hacer con el siguiente codigo:

INSERT INTO [papelesysociales].[dbo].[FACTURAS]([XX], [Orden ID], [Cliente ID], [Fecha_Factura], [Vendedor ID], [Tipo_Venta], [Forma Envio], [Descuento], [Status], [Forma de Pago], [PLAZA])
SELECT [XX], [Orden ID], [Cliente ID], [Fecha_Factura], [Vendedor ID], [Tipo_Venta], [Forma Envio], [Descuento], [Status], [Forma de Pago], [PLAZA] FROM [papelesysociales].[dbo].[FACTURAS]
where Factura_ID = 56

Con mysql me dice manda el error "not unique table/alias"

sera cuestion de la base de datos??

__cadetill
14-05-2003, 09:59:42
Puede ser cuestion del SGBD pero, por si acaso, prueba a ponerle un alias a las tablas (tanto del insert como del from) como yo puse en el ejemplo a ver que tal

jourdan
14-05-2003, 18:02:00
Gracias, parece ser que en mysql no se puede hacer un insert sobre la misma tabla, no encontre mucha informacion al respecto pero en una parte del manual lo menciona, seguirmes investigando.

Saludos y gracias nuevamente

Alejandro Jourdan