Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

POmoc oko pocetka rada sa PostgrSql bazom

[es] :: PostgreSQL :: POmoc oko pocetka rada sa PostgrSql bazom

[ Pregleda: 6234 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darko_sudarov
ProConto Software doo
Kikinda

Član broj: 89262
Poruke: 136
*.ptt.rs.



Profil

icon POmoc oko pocetka rada sa PostgrSql bazom26.11.2012. u 14:42 - pre 92 meseci
Napravio sam jednu test bazu sa jednom tabelom koja se zove test i ima id,naziv gde je id pk i not null sa generatorom(sequence) seq_for_id
sada bi hteo da napisem funkciju koja uzima sledecu vrednost iz sequence i vrati mi int kao rezultat?
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
*.tico.rs.

ICQ: 325309560


+2 Profil

icon Re: POmoc oko pocetka rada sa PostgrSql bazom26.11.2012. u 15:06 - pre 92 meseci
Ako ti je tabela test, a kolona id:

Code:

SELECT nextval('test_id_seq')AS sledeci_id

"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

darko_sudarov
ProConto Software doo
Kikinda

Član broj: 89262
Poruke: 136
*.ptt.rs.



Profil

icon Re: POmoc oko pocetka rada sa PostgrSql bazom26.11.2012. u 15:17 - pre 92 meseci
To je u redu.
Mene muci izgleda vise alat pgadmin.

Kako celu fukciju da napravim to mi je problem?
npr
create or replace function novi_id
as
begin
....
....
end;

Pored ovoga zeleo bih da napravim funkciju kojoj je promenljiva naziv tabele (koja ce biti input parametar)
da dinamicki kreiram sql skript koji ce funkcija da izvrsi i da mi vrati rezultat tipa integer
npr
sql = SELECT nextval(:promenljiva)AS sledeci_id;
execute skripta into :id
gde je id izlazni parametar;

[Ovu poruku je menjao darko_sudarov dana 26.11.2012. u 18:42 GMT+1]
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
217.16.142.*

ICQ: 325309560


+2 Profil

icon Re: POmoc oko pocetka rada sa PostgrSql bazom26.11.2012. u 17:37 - pre 92 meseci
Ne preporucujem to jedino ako si siguran da u svakoj tabeli u bazi imas kolonu koja se tacno zove "id", ako
nemas morao bi da prosledjujes i taj parametar:

Kreiraj tabelu


Code:
CREATE TABLE tabela
(
  id bigserial NOT NULL,
  CONSTRAINT tabela_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=TRUE
);
ALTER TABLE tabela OWNER TO postgres;


Funkcija samo sa tabelom:
Code:

CREATE OR REPLACE FUNCTION get_nextval_tabela(tabela character varying)
  RETURNS bigint AS
$BODY$
SELECT nextval($1||'_id_seq')
$BODY$
  LANGUAGE 'sql' VOLATILE
  COST 100;

Pozivas:
Code:

SELECT get_nextval_tabela('tabela')



Funkcija sa tabelom i kolonom:
Code:

CREATE OR REPLACE FUNCTION get_nextval_tabela_kolona(tabela character varying, kolona character varying)
  RETURNS bigint AS
$BODY$
SELECT nextval($1||'_'||$2||'_seq')
$BODY$
  LANGUAGE 'sql' VOLATILE
  COST 100;

Pozivas:
Code:

SELECT get_nextval_tabela_kolona('tabela','id')

"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
217.16.142.*

ICQ: 325309560


+2 Profil

icon Re: POmoc oko pocetka rada sa PostgrSql bazom26.11.2012. u 17:57 - pre 92 meseci
Citat:
darko_sudarov:
To je u redu.
Mene muci izgleda vise alat pgadmin.

Kako celu fukciju da napravim to mi je problem?
npr
create or replace function novi_id
as
begin
....
....
end;


Pustis ove upite za kreiranje funkcija u SQL editoru???
"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

darko_sudarov
ProConto Software doo
Kikinda

Član broj: 89262
Poruke: 136
*.ptt.rs.



Profil

icon Re: POmoc oko pocetka rada sa PostgrSql bazom26.11.2012. u 18:29 - pre 92 meseci
Super to sam pokusavao da napisem ali ne baratam sitaksom.
Jos jedno pitanje ako moze.
Da li moze da se u samoj funkciji definise pored tipa i naziv izlazne promenljive
recimo
SELECT nextval($1||'_id_seq') as id
pa kada pozovem
SELECT get_nextval_tabela('tabela') da mi vrati rezultat sa nazivom polja id?
 
Odgovor na temu

aca andrijevic
aka LoGaN
Nis

Član broj: 35450
Poruke: 347
*.tico.rs.

ICQ: 325309560


+2 Profil

icon Re: POmoc oko pocetka rada sa PostgrSql bazom27.11.2012. u 07:49 - pre 92 meseci
Ne, moras da definises kad pozivas funkciju:

Code:

SELECT get_nextval_tabela('tabela') AS id

"Ne menjaj nesto sto te sasvim dobro sluzi, ne trazi leba preko pogace" - Aleksandar Andrijevic
 
Odgovor na temu

[es] :: PostgreSQL :: POmoc oko pocetka rada sa PostgrSql bazom

[ Pregleda: 6234 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.