SQL funkce v PgSQL
"Zíka Aleš, Ing."
Ales.Zika na pel.br.ds.mfcr.cz
Úterý Únor 25 14:55:45 CET 2003
Zdaavim,
mam takovy problem, se SQL fukcemi v PgSQL 7.2.3.
Zkousel jsem priklad v kapitole 9.2.1, vytvoril jsem tabulku emp a
naplnil ji daty
test=# CREATE TABLE emp (name text, salary int);
test=# INSERT INTO emp VALUES ('jedna', 100);
test=# INSERT INTO emp VALUES ('dva', 1000);
test=# INSERT INTO emp VALUES ('tri', -1000);
test=# INSERT INTO emp VALUES ('ctyri', -1500);
test=# INSERT INTO emp VALUES ('pet', -100);
Takze obsah tabulky byl:
test=# SELECT * FROM emp;
name | salary
-------+--------
jedna | 100
dva | 1000
tri | -1000
ctyri | -1500
pet | -100
(5 rows)
Vytvoril jsem funkci:
test=# CREATE FUNCTION clean_emp () RETURNS void AS '
test'# DELETE FROM emp WHERE salary < 0;
test'# ' LANGUAGE SQL;
Po jejim spusteni bych cekal, ze v tabulce zbydou jen dva zaznamy
'jedna' a 'dva', jenze ne:
test=# SELECT clean_emp();
clean_emp
-----------
NULL
(1 row)
test=# SELECT * FROM emp;
name | salary
-------+--------
jedna | 100
dva | 1000
ctyri | -1500
pet | -100
(4 rows)
Tedy ta fukce vymazala jen jediny zaznam a skoncila, teprve po
dalsich dvou spustenich zlikvidovala postupne i zbyle dva zazanmy vyhovuji
podmince.
Trochu jsem si s tim hral a delaji to i jine funkce a treba i s
prikazem UPDATE, vzdycky upravi jen jediny zaznam a skonci.
To je normalni a neco jsem nepochopil, nebo to je chyba?
Konfigurace W2kPro + cygwin + PgSQl 7.2.3
Diky,
Ales Zika
Pelhrimov
e-mail: Ales.Zika na pel.br.ds.mfcr.cz
Ales.Zika na seznam.cz
SMS: Ales.Zika na sms.underground.cz
Další informace o konferenci Test