![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 16.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Posiadam tabele:
Wiawiam rekord do tej tabeli (Z POZIOMU PHPów):
Klucz glowny tabeli (ID_ZAMOWIENIE) jest inkrementowany poprzez trigger:
PROBLEM: JAK ZA POMOCA PHP POBRAC ID WSTAWIONEGO REKORDU?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 12.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
A po co sobie komplikujesz życie definiując trigger na kolumnie id? Albo najpierw pobierz id z sequence i podstaw jawnie we frazie INSERT albo napisz sobie procedurę w PL/SQL, która wstawi rekord z odpowiednimi wartościami i zwróci wartość id wstawionego rekordu.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 5 Dołączył: 23.10.2006 Skąd: Gda?sk Ostrzeżenie: (0%) ![]() ![]() |
Poza tym jesli chcesz inkrementowac klucz glowny to daj mu typ serial i bedzie sie sam zwiekszal (stworzy sie dla niego sekwencja), a id wstawionego rekordu pobierasz tak:
insert into costam values(default, 'adrian'); select currval('nazwa_sekwencji'); i tyle |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 29.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
CURRVAL podaje bieżącą wartość sekwencji. Jeżeli w drugiej sesji ktoś uruchomi tą samą procedurę, w tym samym czasie, co ty, możecie dostać ten sam wynik.
Pobieranie wartości sekwencji na trg jest najlepszym rozwiązaniem. Budując kolejny interfejs wstawiający dane do tej samej tabeli nie musisz powielać obsługi sekwencji.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 13:28 |