Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/03/2011, 19:17
javiDP
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: insertar con triggers

Segun he entendido, lo que quieres es que cuando hagas un insert en la tabla paciente, inserte tambien nuevos registros en ingreso y trata, y que introduzca el cod_ing en el paciente que acabas de insertar no?

De ser así, estas haciendo cosas mal.

Para empezar, si quieres llevar una cuenta de los pacientes que tienes, lo mejor que puedes hacer es crearte una secuencia y cada vez que se inserte un nuevo paciente hacer un nextVal() e ingresarlo como cod_ing en pacientes, eso lo puedes hacer desde la sentencia insert llamando al nextVal() de la secuencia y dandoselo como valor de cod_ing.

Ejemplo:

Creas la secuencia:
Código:
create sequence incremento_pacientes increment by 1 start with 0;
Insertas un nuevo paciente incrementando esa secuencia y usando su valor incrementado como cod_ing:
Código:
insert into paciente values(incremento_pacientes.nextVal(), 'pepe', ....);
Me imagino que cod_ing sera pk de paciente(y lo que quieres hacer es un autoincrement puro y duro) y el problema que tenias era ese, que no sabias como insertar un paciente cuyo cod_ing fuese el cod_ing del ultimo paciente +1. Pues es asi, creandote una secuencia.

Eso si, la secuencia la has de crear cuando crees la tabla en la que quieras el autoincrement, porque si ya tienes 20 pacientes y tu ultimo cod_ing es 20, si creas la secuencia empezando a cero, cuando vayas a usar el insert que te he puesto antes te va a dar un fallo, ya que le insertaras cod_ing 1 y ese ya existe. Puedes empezar la secuencia con el ultimo cod_ing que tengas ya, cambiando el START WITH de arriba por el ultimo cod_ing que tengas.

Un saludo!