From: | Gunnar Nick Bluth <gunnar(dot)bluth(at)pro-open(dot)de> |
---|---|
To: | Gunnar Oehmichen <oehm8895(at)uni-landau(dot)de> |
Cc: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: IF ELSEIF Funktion in PL/pgSQL erstellen |
Date: | 2014-01-15 12:31:20 |
Message-ID: | 20140115123152.3693D100A0B9@www.pro-open.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Na ja, deine neue View sollte sich natürlich auf die Tabelle beziehen, nicht auf sich selbst ;-)
Gruß/Best regards,
Gunnar "Nick" Bluth
Sent from my mobile
gunnar(dot)bluth(at)pro-open(dot)de
+49-172-8853339
Am 15.01.2014 13:06 schrieb Gunnar Oehmichen <oehm8895(at)uni-landau(dot)de>:
>
> 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
>
>
> --
> Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-de-allgemein
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnar Oehmichen | 2014-01-15 13:21:43 | Re: IF ELSEIF Funktion in PL/pgSQL erstellen |
Previous Message | Gunnar Oehmichen | 2014-01-15 12:06:14 | Re: IF ELSEIF Funktion in PL/pgSQL erstellen |