Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php+mysql] TRUNCATE
Forum PHP.pl > Forum > Przedszkole
Wykrywacz
Cześć wszystkim.

Mam najpierw szereg skryptów wykonujących inserty updaty i takie tam. Lecz na koniec chce dać opcję powrotu do początku. Znalazłem coś takiego jak TRUNCATE TABLE, ale niema tam opcji where która by mnie interesowała, bo potrzebuje wykasować tylko to co zostało dodane przez daną sesję o danym identyfikatorze.

Z góry mówie że Delete mnie nie intresuje bo on owszem usunie mi rekordy, ale id'ki które mają autoincrementa nie zostaną skasowane. I nowy insert będzie na kolejnych numerach (czyli po tych już skasowanych).

Czy znacie jakąś inną komendę? na mysl'u pisze TAK
dr_bonzo
Mozesz dac DELETE WHERE + dostosowac AI w tabeli (http://dev.mysql.com/doc/refman/5.0/en/alter-table.html) ale co z rekordami stworzonymi przez innych userow (sesje) w tym samym czasie?

A po co ci przywracanie starego AI? Nie mozesz zwiekszyc typu pola int -> bigint?
Wykrywacz
Z sesjami się nie martwię, bo to ręcznie nadawany ID który łaczy się jeszcze z idendyfikatorem użytkownika, niema możliwości zdublowania numeru, bo jest to numer dla użytkownika.

Swoją drogą powinien zwykły int wystaraczyć (góra 15 tyś rekordów miesięcznie). Poprostu bardzo spodobał mi się TRUNCATE, który kasuje równierz autoincrementowane id. A tym samym optymalizuje mi bazę do zmniejszania ilości numerków w bazie.
Stąd moje pytanie.

Bo naraz może być to nawet różnica 1000 rekordów. Które albo są zaoszczędzone, albo nie smile.gif
dr_bonzo
KISS:
Moim zdaniem komplikujesz sobie zycie -- daj big inta -- chyba 9-z-wieloma zerami IDkow, powinno starczyc. Nie ma co sie bawic z odzyskiwaniem wartosci AI.

A TRUNCATE to (jak pamietam) usuwa tabele i tworzy ja na nowo i nie mozna go wykonac wewnatrz transakcji.
Wykrywacz
Dokładnie to robi smile.gif.
bigint nie jest potrzebny zwykły int ma nawet 11 (w każdym razie na tyle mi z automatu ustawił phpmyadmin tongue.gif ).

A mam jeszcze tylko takie optymalizacyjne pytanie.
Czy jeżeli mam ustawione indexowanie, i właśnie są kasowane takie rekordy, czy on te usunięte też indexuje czy pomija?

Co to znaczy KISS: questionmark.gif
dr_bonzo
[quote]Czy jeżeli mam ustawione indexowanie, i właśnie są kasowane takie rekordy, czy on te usunięte też indexuje czy pomija?[/quoite]
Nie rozumiem...



KISS - http://pl.wikipedia.org/wiki/KISS_(reguła)
czyli to co napisalem tam ponizej 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.