![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.11.2005 Skąd: hen hen Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Pracuje aktualnie nad zwiększaniem wartości pola auto_increment/primary key o 1. Wiem, istnieje kilka funkcji php oraz mysql np: mysql_insert_id() lub LAST_INSERT_ID(), jednak zwracają one wartość ostatniego polecenia INSERT. A co jeśli to polecenie jest pierwszym poleceniem w skrypcie i nie ma z czego ściągnąć wartości? Ja, korzystają z informacji znalezionych na tym forum stworzyłem coś takiego:
...skrypt działa, jednak istnieje możliwość, że w czasie pomiędzy wykonaniem polecenia SELECT i INSERT zostanie zmieniona wartość pola post_id. W takim wypadku mysql zgłosi błąd. Jeśli ma ktoś jakiś ciekawy pomysł, przedewszystkim prostszy chętnie wysłucham... Pozdrawiam Ten post edytował missile 21.03.2006, 10:13:57 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 12.11.2005 Skąd: hen hen Ostrzeżenie: (0%) ![]() ![]() |
Wiem, znam obydwa sposoby, o tym pierwszym co prawda zapomniałem (choć to podstawy) jednak problem wynikał z tego iż chcę wstawić do pola post_topic_id takiej samej wartości jaką przybrało pole post_id(auto_increment). Zależy mi na jak największym zoptymalizowaniu skryptu. Myślałem nad blokowaniem tablic, jednak dochodzą wtedy dwa dodatkowe zapytania do bazy. Najlepszym wyjściem będzie chyba jednak korzystanie z opcji auto_increment w bazie oraz bezpośrednio po poleceniu INSERT skorzystanie z funkcji mysql_insert_id() i wykonania zapytania wstawiającego wartość z ostatniego zapytania INSERT...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 19:40 |