23/04/2007, 09:20
|
| | Fecha de Ingreso: abril-2007
Mensajes: 27
Antigüedad: 17 años, 8 meses Puntos: 0 | |
problema insertando la secuencia correcta en tipo de datos serial tengo la sgte tabla...
tasas
serial character
cod_tasa|descrip
----------------
1 |porcentaje anual
2 |porcentaje mensual
3 |porcentaje trimestral
la funcion para ingresar un nuevo registro es la sgte:
CREATE OR REPLACE FUNCTION alt_tasa( des1 bpchar)
RETURNS void AS
$BODY$declare
begin
INSERT INTO tasas
(descrip)
VALUES
(des1);
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION alt_tasa( des1 bpchar) OWNER TO postgres;
cuando ejecuto la funcion select alt_tasa('porcentaje semestral') me sale el sgte error.....
ERROR: duplicate key violates unique constraint "cod_tasa"
Estado SQL:23505
Contexto:SQL statement "INSERT INTO tasas (descrip) VALUES ($1)"
PL/pgSQL function "alt_uni" line 7 at SQL statement
por lo que lei esto no deberia ocurrir porque deberia insertarnos el numero que sigue en nuestra secuencia en este caso 4 pero como sabemos el error pasa porq al tratar de ingresar el campo cod_tasa que es de tipo serial obviamente esta tomando el valor de 1 si lo ejecuto nuevamente tomara el valor 2 y me dara el mismo error
modifique el insert
INSERT INTO tasas
(cod_tasa,descrip)
VALUES
(nextval('tasas_cod_tasa_seq'),des1);
y me sigue haciendo exactamente lo mismo sigue empezando de 1..
COmo puedo hacer para que mi campo serial ingrese apartir del ultimo registro?
es decir en este caso 4
ayuda porfa es urgente... gracias |