Re: IF ELSEIF Funktion in PL/pgSQL erstellen

From: Gunnar Oehmichen <oehm8895(at)uni-landau(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: IF ELSEIF Funktion in PL/pgSQL erstellen
Date: 2014-01-15 12:06:14
Message-ID: 52D679B6.4020401@uni-landau.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallöchen Nick und Liste,

erstmal Danke für die Antworten, war sehr hilfreich.

nach anderer Arbeit und den Ferien mich jetzt mal wieder dem hier gewidmet.

Ich habe also ausgeführt (auf das Beispiel und den View um den es mir
eigentlich geht):

CREATE OR REPLACE VIEW taxons AS (
SELECT *, (case when taxon_name ~ 'sp.$' then
case when genus ~ 'idae$' then 'Familie'
else 'Gattung'
end
else 'Art'
end) AS taxon_level
FROM taxons);

@Nick, deine Version funktioniert als Abfrage mit dem kleinen
Beispielview jedoch nicht mit dem View um den es eigentlich geht (den
ich euch der einfachheit halber natürlich vorenthalten habe).

gunnar=# SELECT * from taxons;

family | genus | taxon_name | taxon_level
-------------+-------------+----------------------+-------------
SPHAERIIDAE | Pisidium | Pisidium personatum | Art
SPHAERIIDAE | Pisidium | Pisidium sp. | Gattung
SPHAERIIDAE | Sphaeriidae | Sphaeriidae Gen. sp. | Familie
(3 rows)

Bei meinem eigentlichen View dagegen:

ERROR: infinite recursion detected in rules for relation "taxons_points"

********** Fehler **********

ERROR: infinite recursion detected in rules for relation "taxons_points"
SQL Status:42P17

Könnt ihr mir weiterhelfen?

Herzlichen Dank,

Gunnar

>
> bluthg=# create or replace view tax_view as (select *,
> case when taxon_name ~ 'sp.$' then
> case when genus ~ 'idae$' then 'Familie'
> else 'Gattung'
> end
> else 'Art'
> end
> from taxons
> );
> CREATE VIEW
> Zeit: 29,059 ms
> bluthg=# SELECT * from tax_view ;
> +-------------+-------------+----------------------+---------+
> | family | genus | taxon_name | case |
> +-------------+-------------+----------------------+---------+
> | SPHAERIIDAE | Pisidium | Pisidium personatum | Art |
> | SPHAERIIDAE | Pisidium | Pisidium sp. | Gattung |
> | SPHAERIIDAE | Sphaeriidae | Sphaeriidae Gen. sp. | Familie |
> +-------------+-------------+----------------------+---------+
> (3 Zeilen)

--
Gunnar Oehmichen
Quantitative Landscape Ecology
Institute for Environmental Sciences
University Koblenz-Landau
Fortstrasse 7
76829 Landau
Germany
http://www.uni-koblenz-landau.de/landau/fb7/umweltwissenschaften/landscape-ecology/Staff/gunnaroehmichen

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Gunnar Nick Bluth 2014-01-15 12:31:20 Re: IF ELSEIF Funktion in PL/pgSQL erstellen
Previous Message Michael Achtzehn 2014-01-14 14:58:24 Re: [pgsql-de-allgemein] Re: [pgsql-de-allgemein] PostgreSQL 9.2 am localhost keine Anmeldung ohne Passwort möglich?