[SQL][MySQL][PHP]Numeracja kontraktu |
[SQL][MySQL][PHP]Numeracja kontraktu |
14.11.2020, 15:25:50
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.03.2009 Ostrzeżenie: (0%) |
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. |
|
|
14.11.2020, 15:59:59
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 766 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Wstawiaj sobie do odrębnej tabeli ostatni numer ID. Będzie to tabela z jednym rekordem.
-------------------- |
|
|
14.11.2020, 16:03:32
Post
#3
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) |
-------------------- |
|
|
15.11.2020, 20:46:37
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.03.2009 Ostrzeżenie: (0%) |
Dzięki, stworzyłem odrębną tabelę.
|
|
|
15.11.2020, 22:43:31
Post
#5
|
|
Grupa: Zarejestrowani Postów: 321 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) |
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; |
|
|
18.11.2020, 19:54:49
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 4.03.2009 Ostrzeżenie: (0%) |
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ł |
|
|
18.11.2020, 21:37:44
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 766 Pomógł: 1823 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
I jeszcze prościej:
https://dev.mysql.com/doc/refman/5.7/en/cre...ed-columns.html https://www.mysqltutorial.org/mysql-generated-columns/ -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 5.06.2024 - 04:30 |