Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][MySQL][PHP]Numeracja kontraktu
Forum PHP.pl > Forum > Przedszkole
pixo
Witam,

Mam pytani dotyczące automatycznej numeracji.

Mam tabelę KONTRAKT:

ID - Auto Increment
NUMERKONTRAKTU

Przy tworzeniu numeru kontraktu pobieram ostatnie ID tabeli, załóżmy, że jest to 4. Funkcja tworzy NUMERKONTRAKTU, który wygląda 2AB00004 (czwórka na końcu to ostatnie ID).
Wszystko działa, ale do momentu kiedy nie usunę wszystkich rekordów z tabeli KONTRAK.
Po usunięciu wszystkich rekordów (tabela jest pusta), nie wiem jak pobrać pierwsze ID, które dopiero sie stworzy. Nie będzie to 1, no bo już taki ID był przed usunięciem wszystkich kontraktów. Będzie to już ID 5, ale ja o tym nie wiem, że to będzie 5.

Numery kontraktów nigdy nie mogą sie powtórzyć, nawet jak zostaną usunięte.
trueblue
Wstawiaj sobie do odrębnej tabeli ostatni numer ID. Będzie to tabela z jednym rekordem.
dublinka
Tu sobie sprawdz

https://stackoverflow.com/questions/3952642...528687#39528687
pixo
Dzięki, stworzyłem odrębną tabelę.
gino
Możesz też bez dodatkowej tabeli, ale trzy zapytania w jednym guery:
Kod
INSERT INTO kontrakt (numerkontraktu) VALUES ('');
SET @last_id_kontrakt = LAST_INSERT_ID();
UPDATE kontrakt SET numerkontraktu = CONCAT('2AB000',@last_id_kontrakt) where id = @last_id_kontrakt;
pixo
Cytat(gino @ 15.11.2020, 22:43:31 ) *
Możesz też bez dodatkowej tabeli, ale trzy zapytania w jednym guery:
Kod
INSERT INTO kontrakt (numerkontraktu) VALUES ('');
SET @last_id_kontrakt = LAST_INSERT_ID();
UPDATE kontrakt SET numerkontraktu = CONCAT('2AB000',@last_id_kontrakt) where id = @last_id_kontrakt;


Rewelacja, dziękuję, super pomysł smile.gif
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.