Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] Przejscie na autoincrement?
starterrrrr
post 2.11.2020, 20:38:11
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 7.01.2015

Ostrzeżenie: (0%)
-----


Witam.

Planuje migrować swojego cmsa z blogiem, na frameworka. Najprawdopodobniej Symfony.

Problemem jest to, że nigdy nie korzystałem z opcji "auto_increment" dla klucza głównegow bazie danych.
Zawsze używałem funkcje max_id($table_name, $kol_name);, która odczytuje mi najnowsze id i dodaje 1. I sprawdzało się to dobrze.


Jak można pogodzić teraz bazę bez tego auto_increments z korzystaniem z Symfony?

Czy można jakoś wskazać od jakiego ID ma lecieć ten auto_increment?


P.S. Jest już kilka blogów na tej aplikacji, narazie przeniósł bym samego admina, jednak skrypt po stronie użytkownika również wykonuje operacje na bazie danych.

Proszę doradzić co w takiej sytuacji zalecacie?
Go to the top of the page
+Quote Post
SmokAnalog
post 2.11.2020, 20:53:09
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


W sensie chcesz dodać do bazy auto increment czy używać swojego starego sposobu? Polecam jednak używać auto increment z poziomu bazy. Jak ustawisz na kolumnie auto increment, to nic więcej nie musisz robić - baza sama wie jaka jest kolejna wartość.
Go to the top of the page
+Quote Post
starterrrrr
post 2.11.2020, 20:58:36
Post #3





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 7.01.2015

Ostrzeżenie: (0%)
-----


Cytat(SmokAnalog @ 2.11.2020, 20:53:09 ) *
W sensie chcesz dodać do bazy auto increment czy używać swojego starego sposobu? Polecam jednak używać auto increment z poziomu bazy. Jak ustawisz na kolumnie auto increment, to nic więcej nie musisz robić - baza sama wie jaka jest kolejna wartość.


Obecnie nie używam, myślę, jak zmigrować do autoincrement. Jak wskazać bazie od którego numeru jak już są jakieś wpisy?
Czy jest jakieś narzędzie, które mi automatycznie ustawi odpowiednie id dla autoincrements?

P.S. Jeżeli w bazie będzie na danym polu będzie autoincrements a podam konkretne id jakie będzie to miało konsekwencje?
Go to the top of the page
+Quote Post
viking
post 2.11.2020, 21:08:22
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Możesz ustawić dowolne od którego możesz zaczynać. Poczytaj dokumentację.


--------------------
Go to the top of the page
+Quote Post
SmokAnalog
post 2.11.2020, 21:15:23
Post #5





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Jeszcze raz - jak masz na przykład w bazie jakąś kolumnę z wartościami 7, 69 i 101, to po nałożeniu auto increment baza sama wie, że kolejną wartością ma być 102. Nie nie musisz robić. O to chodzi, czy chcesz ustawić jakąś inną wartość ręcznie?
Go to the top of the page
+Quote Post
Tomplus
post 2.11.2020, 21:24:15
Post #6





Grupa: Zarejestrowani
Postów: 1 834
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Nawet jeżeli dodasz numer wyższy niż AI np.
id ostatniego rekordu 100, a ty dodasz na sztywno 200, to przy kolejnym rekordzie będzie 201.

Poeksperymentuj na testowej tabeli, z jedną kolumną AI.
Go to the top of the page
+Quote Post
starterrrrr
post 3.11.2020, 09:06:19
Post #7





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 7.01.2015

Ostrzeżenie: (0%)
-----


Ok dziękuje Panowie za podpowiedzi.
Już wszystko rozjaśnione.

Kiedyś kiedyś miałem styczność z auto_increment i Pamiętam, że przy przenoszeniu bazy problem był, czyściłem baze a auto_increment jakiś tam zostawał.

Rzeczywiście może zaczne to używać.
Go to the top of the page
+Quote Post
SmokAnalog
post 3.11.2020, 09:27:03
Post #8





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Być może chodziło o to, że po usunięciu rekordów baza wstawiała następne rekordy z kolejnym ID, a nie zaczynała od nowa. Tak to działa - wartość auto increment jest zapamiętywana. Zawsze możesz ją zresetować:

  1. ALTER TABLE `tabela` AUTO_INCREMENT = 1
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 23:41