Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nietypowy indentyfikator
kefi
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 27.05.2009

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


Witam, mam zrobić tabelę której rekordy będą posiadały numer
indetyfikacyjny składający się z kodu pocztowego oraz doklejonej
koncówki która jest dla kazdego nowego rekordu z tym samym kodem
większa o 1

np.

12-000/0001 | wiesiek
12-000/0002 | heniek
13-123/0001 | czesław
12-000/0003 | marian

Ta wartość identyfkatora będzie pobierana z dwóch kolumn tej z kodem
oraz z koncówką, w jaki sposób nie robiąc tego po stronie skryptu moge
osiągnąć taki efekt ?

Próbowałem zagnieżdzić selecta w ten sposób co działa dobrze ale gdy
jest juz jakis rekord w bazie z takim kodem pocztowym bo jesli nie, to
wewnętrzny select zwraca mi null. MySQL posiada funkcje IF() albo
IFNULL() która rozwiązała by mi tu problem ale w dokumentacji jej nie
widze.

  1. INSERT INTO "ludzie" ("kod","nr","imie",) VALUES ('75-500',SELECT max
  2. ("nr")+1 AS n FROM "places" WHERE "kod" = '75-500' ,'czesław')


Probowałem castować nulla na integer ale nadal zwraca mi nulla,
próbowałem też napisać funkcje PL/SQL po to by dowiedzieć się ze
postgres na home.pl nie oferuje wsparcia dla funkcji PL/SQL a to by
było fajne bo mógł bym sobie to pole ustawiać triggerem i zapomnieć o
tym w skrypcie.
Z tego co widze to moge dodawać wyłącznie funkcje w samym SQL ale
przeglądając dokumentacje widze ze w takiej funkcji nie moge uzywac
ifów.

To jest moje pierwsze spotkanie z Postgresem więc prosze o
wyrozumiałość (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Wersja PgSQLa na home.pl to 8.2.9
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Troche źle napisałem o tych sekwencjach. Użyj triggerów. Po prostu daj trigger na INSERT i tam już reszte można oprogramować.

HOME pozwala na połączenie z zewnątrz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zainstaluj pgAdmina i spróbuj (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

//EDIT Niemożliwe :/ myślałem, że to standard a co dopiero na HOME.
Może to ci pomoże. http://www.postgresql.org/docs/8.3/static/...er-example.html

Ten post edytował wookieb 27.05.2009, 21:57:10
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 14:37