Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jaka funkcja do numerowanie pobranych wierszy po kolei, Nie chodzi o SERIAL.
Sajrox
post 15.03.2009, 21:04:36
Post #1





Grupa: Zarejestrowani
Postów: 254
Pomógł: 7
Dołączył: 9.10.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam,

Kiedyś obiło mi się o uszy że w SQL jest taka funkcja która po kolei ponumeruje po pobrane wiersze z bazy.

Chodzi o to że pobieram jakieś dane sortując i grupując je każdy wiersz zostanie ponumerowany od 1. Przy otrzymaniu tablicy będę miał tam pole numerowane od i zwiększane o 1 w każdym kolejnej krotce.

Przykładowa tablice jaką chce otrzymać:

LP| ID | NAZWA
----------------------
1 | 2 | Jakis produkt |
2 | 4 | Jakis produkt |
3 | 5 | Jakis produkt |
4 | 7 | Jakis produkt |
5 | 12 | Jakis produkt |
6 | 13 | Jakis produkt |

Ten post edytował Sajrox 17.03.2009, 01:44:35
Go to the top of the page
+Quote Post
phpion
post 15.03.2009, 21:53:59
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




W MySQL można to zrobić z wykorzystaniem zmiennych lokalnych (zobacz przykład nospora) natomiast w PostgreSQL może być z tym problem gdyż nie obsługuje on definiowania zmiennych lokalnych (chyba, że coś się w tej kwestii zmieniło). Sam chętnie poznałbym odpowiedź na Twoje pytanie smile.gif
Go to the top of the page
+Quote Post
erix
post 16.03.2009, 00:44:41
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wystarczy nową sekwencję utworzyć. winksmiley.jpg
  1. CREATE sequence asd minvalue 1 start 1;


Potem, każde zapytanie idzie tak:
  1. SELECT pg_catalog.SETVAL('"public"."asd"', '1');
  2. SELECT NEXTVAL('asd'), * FROM tabela;


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
phpion
post 16.03.2009, 17:41:03
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(erix @ 16.03.2009, 02:44:41 ) *
Wystarczy nową sekwencję utworzyć. winksmiley.jpg

Niby tak, rozwiązanie banalnie proste, ale nie wiesz może jak zachowa się system jeśli kilku użytkowników będzie pobierało dane w tym samym czasie? Czy tak szybko (w SELECT) i często (każdy user) aktualizowana sekwencja nie wysypie się?
Go to the top of the page
+Quote Post
erix
post 16.03.2009, 17:44:34
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A keyword CREATE TEMPORARY SEQUENCE? winksmiley.jpg

Cytat
If specified, the sequence object is created only for this session, and is automatically dropped on session exit. Existing permanent sequences with the same name are not visible (in this session) while the temporary sequence exists, unless they are referenced with schema-qualified names.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 21:47