Roberto Almanza LL. Hola a todos los de la lista el problema que tengo es el siguiente:
CREATE TABLE ALUMNO( dni varchar(15) primary key, nombre var_nomb, ap_pat var_nomb, ap_mat var_nomb, telf varchar(12), calle varchar(50), ciudad varchar(50), provincia varchar(50), fecha_nac date not null, estado_civil char(1) default 'S' check(estado_civil in('S','C','V','P','D')) ); -------------------------------------------------trigger--------------------------------------------------------------- CREATE TRIGGER VERIFICAR_ALUMNO BEFORE INSERT ON ALUMNO FOR EACH ROW EXECUTE PROCEDURE Validar_Alumno(); CREATE OR REPLACE FUNCTION Validar_Alumno() RETURNS TRIGGER AS $$ BEGIN if( not exists(select * from alumno where dni=new.dni))then insert into alumno values(new.*); else RAISE EXCEPTION 'Ya existe un usuario registrado con este dni'; end if; return null; END; $$ LANGUAGE 'PLPGSQL'; -------------------------------------------------trigger--------------------------------------------------------------- el problema surge cuando quiero insertar datos en esta table insert into alumno values('7.777.777-L','Jose Antonio','Arenas','Bernabé','96-568-47-24','Pza. La paz, 3', 'Altea','Alicante','25-05-1973','C'); Y me genera este error . si alguien podria desirme por que para esto. ERROR: stack depth limit exceeded HINT: Increase the configuration parameter "max_stack_depth", after ensuring the platform's stack depth limit is adequate. CONTEXT: SQL statement "SELECT ( not exists(select * from alumno where dni= $1 ))" PL/pgSQL function "val_alumno" line 2 at IF SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)" PL/pgSQL function "val_alumno" line 3 at SQL statement SQL statement "INSERT INTO alumno VALUES ( $1 .*)"