![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 6.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chodzi o wyciągnięcie z pgsql ostatniego id rekordu dodanego przez insert w sposób analogiczny od mysqli (insert_id) ... Kombinuje z klasą, ale może ktoś już temat przemielił na wskroś i zna skuteczne jak najbardziej uniwersalne rozwiązanie. Pozdrawiam -------------------- Aplikacje mobilne iPhone i iPad: http://generio.pl / http://facebook.com/GenerioPL
Portfolio: http://poslinski.net |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
W postgresie możesz to zrobić na dwa sposoby:
Założenie mam takie, że korzystasz z sekwencji do tworzenia kluczy głównych w tabelach (podobnie jak AUTO_INCREMENT w MySQL) I. Najpierw robisz zapytanie o kolejną wartość w sekwencji, czyli przykładowo:
Wynik tego selekta zapisujesz sobie do zmiennej a następnie robisz "INSERT" z użyciem tej wartości. Przykład z wykorzystaniem AdoDB: // "rezerwujemy" identyfikator, który już nikt kto używa sekwencji go nie użyje $idProduktu = $db->GetOne("SELECT nextval('produkt_id_produkt_seq'::regclass);"); // i z niego korzystamy: $db->Execute("INSERT INTO produkt (id_produkt, nazwa, cena) VALUES ($idProduktu, 'Ptasie Mleczko', '3');"); // identyfikator wprowadzonej krotki masz w $idProduktu II Przykład chyba bardziej prosty ![]() przykład zapytania
Myślę, że pomoże Pozdrawiam Cezar708 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Jest jeszcze trzeci sposób. Tworzysz tabelę z OID, a następnie używasz funkcji pg_last_oid. Funkcja ta zwróci Ci OID dodanego wiersza. Jedyne co musisz zrobić, to wykonać zapytanie i dać w warunku ten OID.
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:52 |