From: | "juan jose dominguez" <preguntas_sql(at)hotmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | returned more than one row |
Date: | 2006-05-01 10:53:04 |
Message-ID: | BAY23-F16B533F9238ED660E627A983B10@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenas tengo las siguientes tablas:
--DROP TABLE codigos_provincia;
CREATE TABLE codigos_provincia
(
codigo numeric NOT NULL,
provincia char(25)
) ;
INSERT INTO codigos_provincia VALUES (01,'Álava');
INSERT INTO codigos_provincia VALUES (02,'Albacete');
INSERT INTO codigos_provincia VALUES (03,'Alicante');
...
Y:
DROP TRIGGER trigger_comprueba_cp ON mitabla;
DROP FUNCTION comprueba_cp () ;
CREATE FUNCTION comprueba_cp () RETURNS OPAQUE AS'
DECLARE
n_aux NUMERIC;
BEGIN
IF (NEW.micodigo) ISNULL THEN RAISE EXCEPTION ''El código no puede ser
nulo'';
END IF;
IF (NEW.miprovincia) ISNULL THEN RAISE EXCEPTION ''La provincia no puede ser
nula'';
END IF;
n_aux := n_aux / 1000;
SELECT codigos_provincia.codigo INTO n_aux FROM codigos_provincia WHERE
NEW.miprovincia = codigos_provincia.provincia;
IF (n_aux = codigos_provincia.codigo) THEN RAISE NOTICE ''Codigo postal %
corresponde a la provincia %'', NEW.micodigo, NEW.miprovincia;
ELSE RAISE EXCEPTION ''Codigo postal % NO corresponde a la provincia %'',
NEW.micodigo, NEW.miprovincia;
END IF;
RETURN NEW;
END;
'LANGUAGE 'plpgsql';
CREATE TRIGGER trigger_comprueba_cp BEFORE INSERT OR UPDATE ON mitabla
FOR EACH ROW EXECUTE PROCEDURE comprueba_cp ();
Y me da el siguiente error al insertar:
INSERT INTO mitabla VALUES (28080, 'Madrid', 'Juan');
ERROR: query "SELECT ( $1 = codigos_provincia.codigo)" returned more than
one row
CONTEXT: PL/pgSQL function "comprueba_cp" line 13 at if
Tiene que comprobar que el codigo que inserto se corresponde con la
provincia, pero solo hay un codigo para cada provincia, el select solo
devuelve una celda... que puedo hacer?
GRACIAS!
_________________________________________________________________
Moda para esta temporada. Ponte al día de todas las tendencias.
http://www.msn.es/Mujer/moda/default.asp
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Juan | 2006-05-01 13:36:33 | Re: Problemas para pasar una base de un motor a otro |
Previous Message | juan jose dominguez | 2006-05-01 10:17:15 | returned more than one row |