
Zitat von
Darian
Ok verstehe, habe da aber über das verwenden von den funktionen nirgends wo was gefunden. Hast du da vielleicht irgendwo einen link wo da genauere beispiele aufgeführt sind (das erklärt wird)
Die Doku ist voll davon...
Mein erster versuch war nämlich es als ganz normale php funktionen zu benutzen (was eigentlich eh unlogisch ist)
PHP-Code:
<?php
to_char(current_timestamp, 'HH12:MI:SS)
?>
Du willst etwas haben, etwas selektieren. Daher brauchst Du dort ein select.
Code:
-- Funktion als FROM-Quelle
test=# create function get_one() returns int as $$begin return 1; end; $$ language plpgsql;
CREATE FUNCTION
Time: 418.964 ms
test=*# select * from get_one();
get_one
---------
1
(1 row) Code:
-- selbe Funktion als Sortierkriterium
test=*# select * from foo order by c;
a | b | c
---+---+---
1 | 1 | 1
1 | | 3
2 | 3 | 4
(3 rows)
Time: 1.231 ms
test=*# select * from foo order by get_one();
a | b | c
---+---+---
1 | | 3
2 | 3 | 4
1 | 1 | 1
(3 rows)
Code:
-- selbe Funktion als Teil im WHERE
test=*# select * from foo where a=get_one();
a | b | c
---+---+---
1 | | 3
1 | 1 | 1
(2 rows)
Einfach mal a bissl spielen...
Edit: Gibt es solche Funktionen bei MySQL eigentlich auch, oder ist PostGre Spezifisch (nur weil ich gerade versuche Gedanklich die Unterschiede der Datenbanken zu erfassen; Vorteil Nachteil Vergleich)
Der Hauptunterschied zu MySQL ist der Geruch. MySQL stinkt.
Nein, MySQL hat wohl auch die Möglichkeit, Funktionen zu schreiben. In PG kannst Du das aber in zig Sprachen tun, und damit ist es wohl auch so manchem kommerziellem Produkt überlegen.
Aber man kann nicht sagen, plpgsql sein PG-spezifisch, weil es einklich eine direkte Antwort auf Oracles Programmiersprache ist.
Andreas
Lesezeichen