Einen Datensatz mit allen Datensätzen einer Tabelle vergleichen

Servus,

Ich möchte einen neuen Datensatz einer Tabelle mit allen vorhandenen Datensätzen in der Tabelle vergleichen (true/false).

Mit dem folgenden will ich die neuen Datensätze vergleichen (ST_Overlaps liefert True/False):

IF (SELECT ST_Overlaps(NEW.geometry,a.geometry) FROM flaechen a) = 't' THEN
	RAISE EXCEPTION 'Erstellte Geometrie ungueltig!';
ELSE
RETURN NEW;

Der Fehler dabei ist:

ERROR:  more than one row returned by a subquery used as an expression

Ist auch einleuchtend, weil PG bei ST_Overlaps genau zwei Geometrien vergleichen will. Mit dem obigen Code vergleiche ich aber eine mit vielen Geometrien.
Wie kann man denn einen Datensatz einer Tabelle mit allen anderen in der Tabelle vergleichen?
Irgendwie iterieren (?):
vergleiche NEW.geometry mit geometry where id = 1; ergebnis false
vergleiche NEW.geometry mit geometry where id = 2; ergebnis false

vergleiche NEW.geometry mit geometry where id = n; ergebnis true

und bei true die ganze Sache abblasen.

Wie setze ich das in SQL um?


gruß,
Johannes

IF (SELECT count(*)  FROM flaechen a
     where ST_Overlaps(NEW.geometry,a.geometry)) >0 THEN
	RAISE EXCEPTION 'Erstellte Geometrie ungueltig!';

Könnte eine Lösung sein. Habs aber nicht ausprobiert.

Gruß Uwe

Vielen Dank! Funktioniert wunderbar.

gruß,
Johannes