openwater
6.10.2005, 14:28:23
Witam,
Mam tabelę w której dla jednej z kolumn mam ustawione autoindex. I problem w tym, iz usunąłem kilka rekordów, a autoindex nie uległ zmianie, i teraz chciałbym obniżyc jego wartość? Jest to możliwe? Bo szukam, kombinuję i jakoś nie mi to nie wychodzi.
Pozdrawiam,
Mar.
nospor
6.10.2005, 14:35:14
Dex1987
6.10.2005, 14:41:25
ALTER TABLE `tabela` AUTO_INCREMENT =1
openwater
6.10.2005, 14:45:44
Ja rozumię idę autoincrement, wiem o powiązaniach kluczy itp. Ale ja posiadam jedną tabelę, więc nie zrobi mi to róznicy. A czytając tamten temat dalej nie znalazłem odpowiedzi na moje pytanie, czy jest to mozliwe, a jesli tak to jak?
Bo teraz mam wpisów 115, i każdy wpis ma ID od 1-115 i dodając kolejny tworzy się nowy wps z ID 118, więc jest przeskok o 3 oczka w górę, więc chciałem zmienić aktualny na 116.
//EDIT.
Nie zauważyłem powyższego posta. Dziękuje.
Dex1987
6.10.2005, 14:54:27
Wiec zrob tak jak ja Ci napisalem.
<?php
FROM `tabela`
ORDER BY `id` DESC");
$row = mysl_fetch_array ($query);
// $row['id'] - ostanie id w bazie
$query2 = mysql_query ("ALTER TABLE `tabela` AUTO_INCREMENT =' ".$row['id'] + 1. "'"); ?>
Nie sprawdzalem to nie wiem czy chodzi. To musisz odpalic przed dodaniem kazdego nowego rekordu. A te stare id musza byc po kolei.
openwater
6.10.2005, 15:11:06
Dex1987, dzięki chodziło mi tylko o zmianę, którą dokonałem zapytaniem podanym w Twoim poprzednim poście. Teraz każdy nowo dodany rekord będzie tak jak chciałem.
Pozdrawiam,
Mar.
SongoQ
6.10.2005, 15:37:57
@Dex1987 Twoj przyklad jest nieoptymany. Jesli bedziesz mial miliony id to bedziesz je musial wszystkie zwrocic. Prosciej jest zastosowac MAX(id), dla bazy wydajniej i dla php.
Ta metoda ma pewna wade, poniewaz musisz to robic w transakcji.
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.