Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazanie wartości z pola AI, do innej tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
joka13
Witam

Mam tabelę przesylka oraz status
W tabeli przesylka mam pole nr_przesylki, które jest jednocześnie kluczem głównym i auto increment.

W tabeli status mam pole nr_przesylki_status.

Jak zrobić, żeby do tabeli status w polu nr_przesylki_status wpisywała się wartość wygenerowana przez auto increment w tabeli przesyłka podczas dodawania nowej przesyłki?

Jest to niby proste - zwykła relacja, ale problem w tym, że pole nr_przesylki jest AI. W żaden sposób nie mogę sobie z tym poradzić.


Pomyślałem jeszcze, żeby pole nr_przesylki w tabeli przesyłka nie był AI (co byłoby bezpieczniejsze), ale jak zrobić żeby podczas tworzenia nowej przesyłki generował się unikalny numer złożony przynajmniej z 10 znaków (mogą być cyfry i litery, chociaż niekoniecznie).
Przyznam, że to byłoby najlepsze rozwiązanie, ale nie mam pomysłu jak zrobić, aby taki numer się generował.


Proszę o pomoc.
Dzięki
Mchl
Sam musisz wstawić ten numer przy pomocy LAST_INSERT_ID()
joka13
Nie znałem funkcji LAST_INSERT_ID(), a jakoś nie udało mi się jej wygooglować.

Mam jednak pytanie z nią związane... co się stanie, jeżeli dwie osoby równocześnie dodadzą nowa przesyłkę (oczywiście jest to mało prawdopodobne, ale należy założyć taki scenariusz) - czy może się tak stać, że przesyłka dodana jako przedostatnia, pobierze ID, przesyłki dodanej ostatnio?
Mchl
Wszystko będzie dobrze smile.gif

http://dev.mysql.com/doc/refman/5.0/en/inf..._last-insert-id
Cytat
The ID that was generated is maintained in the server on a per-connection basis. This means that the value returned by the function to a given client is the first AUTO_INCREMENT value generated for most recent statement affecting an AUTO_INCREMENT column by that client. This value cannot be affected by other clients, even if they generate AUTO_INCREMENT values of their own. This behavior ensures that each client can retrieve its own ID without concern for the activity of other clients, and without the need for locks or transactions.


A nawiasem mówiąć, php ma mysql_insert_id (i odpowiednik w ext/myslqi)
joka13
Dzięki wielkie za pomoc - problem rozwiązany.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.