![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 10.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie,
czy ktoś z szanownych grupowiczów pomoże rozwiązać mi pewien problem. Otórz mam jedną tabelę z danymi ewidencyjnymi wielu firm. W tej tabeli każda z tych firm ma swoją niezależną numerację rekordów (nie mylić z głównym id wiersza). Na tabeli pracuje po kilku użytkowników w każdej firmie. Przed każdorazowym wykonaniem inserta do bazy wykonuję select MAX(nr) dla danej firmy. Następnie zwiększam go o 1 i w insercie dodaję do rekordu jego wartość. Wszystko jest prawie pięknie. Ostatnio jednak zdarzyło się że dwóch użytkowników z tej samej firmy dostało ten sam numer pozycji. Cóż począć z tym problemem. Wygląda to mniej więcej jak poniżej: mysql-> $numer="SELECT MAX(nr) FROM table1 WHERE id_firmy=X"; mysql-> INSERT INTO table1 (numer, data1, godz1,...) VALUE ('$numer','$data_1','$godz1',...); Jak uniknąć możliwość wygenerowania tej samej wartości numeru rekordu Próbowałem czegoś takiego: INSERT INTO table1 (numer, data1, godz1,...) VALUE (SELECT (MAX(nr)+1) AS numer FROM table1 WHERE id_firmy=X,'$data_1','$godz1',...); Niestety nie działa. Nadmieniam że dane data1, godz1 są przy każdym insercie inne i nie mogę skorzystać z funkcji INSERT ... SELECT .... bez podania VALUE. Bardzo proszę o pomoc. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 23:12 |