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

copiar tabla a otra más nuevos campos.

Estas en el tema de copiar tabla a otra más nuevos campos. en el foro de PostgreSQL en Foros del Web. Copio los valores de una tabla a otra... La segunda tiene lo mismo que la primera más tres campos: "ID_PETI_CONTRATADO" integer, "FECHA_CONTRATADO" timestamp without time ...
  #1 (permalink)  
Antiguo 16/03/2009, 09:38
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 1 mes
Puntos: 5
copiar tabla a otra más nuevos campos.

Copio los valores de una tabla a otra...

La segunda tiene lo mismo que la primera más tres campos:

"ID_PETI_CONTRATADO" integer,
"FECHA_CONTRATADO" timestamp without time zone DEFAULT ('now'::text)::timestamp without time zone,
"TIPO_SERVICIO" character varying(50),
"FACTURACION" character varying(50)


Al hacer la nueva query, quiero deja "FECHA_CONTRATADO" que coja el valor por defecto pero no soy capaz:

insert into candidatos_contratados select *,20, ,'seleccion','Sin Facturar' from candidatos where "ID_CANDIDATO"=36;

Ni poniendo las comillas, ni si ellas...que debo poner para que coja por defecto.

Otra cosa, si quiero guardar solo por ejemplo "FACTURACION" y dejar "ID_PETI_CONTRATADO" sin meter nada, como debería hacerlo.

Muchas gracias.
  #2 (permalink)  
Antiguo 16/03/2009, 10:33
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: copiar tabla a otra más nuevos campos.

Buen día

No te funciona por que estas tratando de ingresar un vacio en un campo que debe tener un valor por defecto. Pero si no lo pones, sin especificar que elementos se van a insertar, el asumirá que seleccion debe ir en el campo fecha y tambien tendrás un error.


Despues del insert, especifica que campos vas a llenar (sin especificar el campo fecha)

por ejemplo:

insert into candidatos_contratados (campo1_candidatos_contratados, campo2_candidatos_contratados,...campoN_candidatos _contratados) select *,20,'seleccion','Sin Facturar' from candidatos where "ID_CANDIDATO"=36;

De esta forma te funcionará, ya que asi no le ingreses un valor a la fecha, el sabe que tiene un valor por defecto y la pondrá.

Un saludo.
  #3 (permalink)  
Antiguo 17/03/2009, 03:25
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: copiar tabla a otra más nuevos campos.

Indica los campos que quieres añadir en el insert.
Si quieres que un campo pille el valor por defecto, inserta DEFAULT en su posicion

Salu2
  #4 (permalink)  
Antiguo 17/03/2009, 03:41
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 1 mes
Puntos: 5
Respuesta: copiar tabla a otra más nuevos campos.

La primera tabla peticiones quiero guardar todo.

De la segunda es "peticiones_historico" es como la primera más:
BRUTO
VARIABLE
FECHA_HORA
CONCEPTO

Quiero guardar todo, más "FECHA_HORA" con el valor por defecto que le tengo puesto, los otros campos vacios (BRUTO,VARIABLE,CONCEPTO) de momento.
  #5 (permalink)  
Antiguo 17/03/2009, 09:06
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Respuesta: copiar tabla a otra más nuevos campos.

insert into peticiones_historico (nombre_peticiones_campo_1, nombre_peticiones_campo_2 ...., nombre_peticiones_campo_ultimo, bruto)
select *, default
from peticiones

Salu2
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 17:09.