![]() |
![]() |
![]()
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.
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Do postgresa producent dolacza pgAdmina. Zainstaluj go sobie, bardzo przydatne narzędzie.
I tam zauważysz, że jak tworzysz np pole typu serial (mysqlowy auto_increment) to tak naprawde jest to pole typu integer z wartoscia domyslna. U ciebie może być inaczej. Tworzysz funkcje która bedzie wyliczac kolejne id. Albo utworzyc triggera na INSERT ktorzy utworzy id dla nowego pola. Ten post edytował wookieb 27.05.2009, 21:48:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 12:29 |