Când creați un tabel în MySQL, crea mai multe domenii, de obicei, primul câmp este ID-ul, care este umplut cu auto-incrementare, dar chiar dacă ștergeți toate intrările și exemplul lor a fost de 100 de noi prima înregistrare vseravno să fie 101, de ce? După ceva timp, deoarece toate valorile vor fi folosite, iar baza se va ridica „un pachet“, cum să-l lupta? Sau cum să resetați autoincrementul?
Cum ștergi, prin DELETE?
încercați acest lucru:
TRUNCATE TABLE table_name
Pentru a schimba valoarea contorului AUTO_INCREMENT pentru a fi utilizat pentru rânduri noi, procedați astfel:
ALTER TABLE t2 AUTO_INCREMENT = valoare;
> După un timp, toate valorile vor fi folosite și baza va deveni "cola".
Dacă creați 1000000 de înregistrări în fiecare secundă și tipul de celule BIGINT auto-incrementate, atunci baza de date se va ridica la "miză" după 292.277 de ani.
2PetSerAl:
Contorul AUTO_INCREMENT este resetat prin TRUNCATE TABLE, indiferent dacă există o constrângere a cheii străine.
2_KUL:
dacă există un semn intreg, valoarea maximă a autoincrementului va fi de 2147483647 (2 + miliarde). Dacă fiecare zi va fi implicată în 1 milion de înregistrări, atunci baza va deveni o "miză" în aproape 6 ani. Dar acest lucru poate fi prevenit, există o extindere a valorii pentru BIGINT. Deși acest lucru nu este necesar. Dacă tabelul este șters, este suficient să utilizați TRUNCATE. Valoarea directă AUTO_INCREMENT, ca regulă, nu este necesară pentru instalare.
2 ax64
> 2PetSerAl:
> Contorul AUTO_INCREMENT este resetat prin TRUNCATE TABLE, indiferent dacă există o constrângere a cheii străine.
> bine, omule?
Și am spus ceva împotriva ei?
cel mai bun răspuns SQL> OPTIMIZE TABLE 'myTbl';
La această valoare, contorul de incrementare automată va fi resetat la valoarea maximă disponibilă în baza de date. Aceasta înseamnă că, dacă ștergeți toate înregistrările și executați OPTIMIZE TABLE, valoarea va fi resetată, iar următoarea înregistrare va fi scrisă cu una în câmpul autoincrement.
În opinia mea, aceasta este cea mai simplă soluție.