From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | "Roberto A(dot)" <gedeon56(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: ERROR: stack depth limit exceeded (triggers) |
Date: | 2008-11-12 23:35:02 |
Message-ID: | 20081112233502.GN4535@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Roberto A. escribió:
> 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;
Hmm. ¿Al momento de insertar un alumno ejecutas un trigger que inserta
el mismo alumno? Me parece que tienes un error de conceptos.
Si lo que quieres hacer es impedir que se inserten alumnos con el mismo
DNI, basta con que declares el campo dni como UNIQUE. Las llaves
primarias son UNIQUE por definición, así que en realidad no necesitas
hacer nada.
--
Alvaro Herrera Developer, http://www.PostgreSQL.org/
"Escucha y olvidarás; ve y recordarás; haz y entenderás" (Confucio)
From | Date | Subject | |
---|---|---|---|
Next Message | Fabian Sandoval | 2008-11-13 02:22:48 | Re: Problema con Copy to delimiter |
Previous Message | Verny Mata | 2008-11-12 23:30:22 | Re: ERROR: stack depth limit exceeded (triggers) |