Claro con la llave diferente

Saludox !

Escrito 10 septiembre 2009 - 12:35
Escrito 10 septiembre 2009 - 01:20
Hola chicos, pues eso, puedo copiar la info de un registro a otro en la misma tabla de manera directa ? Usando Firebird...
Claro con la llave diferente
Saludox !
INSERT INTO TABLA (campo1, campo2, campo3) VALUES (SELECT Campo1, Campo2, Campo3 FROM TABLA WHERE id = :id)
Escrito 10 septiembre 2009 - 01:27
Hola chicos, pues eso, puedo copiar la info de un registro a otro en la misma tabla de manera directa ? Usando Firebird...
Claro con la llave diferente
Saludox !
sql
INSERT INTO TABLA (campo1, campo2, campo3) VALUES (SELECT Campo1, Campo2, Campo3 FROM TABLA WHERE id = :id)
Escrito 10 septiembre 2009 - 01:32
INSERT INTO TABLA (ID, campo1, campo2, campo3) VALUES ('Valor Clave', SELECT Campo1, Campo2, Campo3 FROM TABLA WHERE id = :id)
Escrito 10 septiembre 2009 - 01:35
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ('HOLA','ADIOS',SELECT FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001')
Escrito 10 septiembre 2009 - 01:37
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )
Escrito 10 septiembre 2009 - 01:39
Hola amiguita, te falto unos parentesis
sql
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )
Salud OS
Escrito 10 septiembre 2009 - 01:43
Escrito 10 septiembre 2009 - 01:44
tienes razon, me funciona es haciendo un select por cada campo, pero es mucho proceso para la BD dejame investigar a ver que consigo
Escrito 10 septiembre 2009 - 01:45
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001'), (SELECT TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )
Escrito 10 septiembre 2009 - 01:47
tienes razon, me funciona es haciendo un select por cada campo, pero es mucho proceso para la BD dejame investigar a ver que consigo
Escrito 10 septiembre 2009 - 01:48
Pues entonces hagamos una chapuza
![]()
![]()
![]()
sql
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ('HOLA','ADIOS', (SELECT FEC_AVIS FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001'), (SELECT TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )
Salud OS
Escrito 10 septiembre 2009 - 01:51
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ((SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )
Escrito 10 septiembre 2009 - 01:55
Prefiero esta chapuza
:D
sql
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ((SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )
Una ejecucion menos del select
Escrito 10 septiembre 2009 - 02:02
Prefiero esta chapuza:D
sql
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) VALUES ((SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001') )
Una ejecucion menos del select
Me manda un error en la coma de después del 'HOLA'
Escrito 10 septiembre 2009 - 02:14
INSERT INTO SAAIO_AVITRAS (CVE_IMPOO, FOL_AVIS, FEC_AVIS, TIP_OPER) SELECT 'HOLA','ADIOS', FEC_AVIS, TIP_OPER FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '000/01' AND FOL_AVIS = '80000001'
Escrito 10 septiembre 2009 - 02:45
INSERT INTO tabla1 (NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA) SELECT NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA FROM TABLA1 WHERE NOMBRE = 'a'
Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values. violation of PRIMARY or UNIQUE KEY constraint "PK_TABLA1" on table "TABLA1".
Escrito 10 septiembre 2009 - 02:58
Yo intento ejecutar una consulta como esta:
sql
INSERT INTO tabla1 (NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA) SELECT NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA FROM TABLA1 WHERE NOMBRE = 'a'
Y no me funciona (tengo Firebird 1.5.3).
El error que me sale es este:
delphi
Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values. violation of PRIMARY or UNIQUE KEY constraint "PK_TABLA1" on table "TABLA1".
Probé distintas variaciones de ésta, con y sin la clave... pero nada. ¿Tal estoy de la cabeza?
¿Donde ando metiendo mal el dedo?8-)
Saludos,
Escrito 10 septiembre 2009 - 03:17
ID NOMBRE FECHA CANTIDAD MONEDA FECHA1 INTPEQUE HORA 951 Marcelo 10/09/2009 25 365 10/10/2009 10 05:44:38 p.m.
INSERT INTO TABLA1 (ID, NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA) SELECT ID + 100, NOMBRE, FECHA, CANTIDAD, MONEDA, FECHA1, INTPEQUE, HORA FROM tabla1 WHERE NOMBRE = 'Marcelo'
Escrito 10 septiembre 2009 - 03:34
Qry_Copia.SQL.Text := 'INSERT INTO SAAIO_AVITRAS '+ 'SELECT '+quotedstr(Clave)+','+quotedstr(Folio)+ ',FEC_AVIS,TIP_OPER, TIP_TRAS, TIP_PROGO, NUM_PROGO, CVE_PLANO'+ ',CVE_IMPOD,TIP_PROGD, NUM_PROGD,CVE_PLAND, CVE_REPR, FIR_ELEC'+ ',NUM_FEA,NUM_REFE FROM SAAIO_AVITRAS WHERE CVE_IMPOO = '+ quotedstr(Clave)+' AND FOL_AVIS = '+quotedstr(edr_reforig.Text);