Re: ERROR: stack depth limit exceeded (triggers)

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)

In response to

Browse pgsql-es-ayuda by date

  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)