Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> logowanie, historia logowań
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Mam tabelę logi. Do tej tabeli zapisywany jest login, data i godzina logowania oraz wylogowania użytkownika. Klucz główny tej tabeli ustawiłem na BIGINT. Chcę aby admin miał możliwość okresowego kasowania tych logów. Wiem, że można zmienić wartość licznika AUTO_INCREMENT tylko nie pamiętam jak.
Jeśli w tabeli będę miał 50 wpisów i wszystkie usune, a później dodam jakiś to wartość klucza głównego będzie wynosić 51.

Moje pytanie: Jak zmienić, żeby wstawiało znowu od wartości 1? I czy to przestawienie nie wpłynie na inne tabele?

EDIT:
_____

Sprawa ma się tak. Do zmiany wartości AUTO_INCREMENT służy polecenie
  1. SET INSERT_ID=jakas wartosc
Wszystkie wpisuje z palca

Ale pojawił się inny problem. Utwozyłem sobie drugą bazę:
  1. CREATE TABLE dupa
  2. (
  3. dupa_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  4. opis VARCHAR10)
  5. );


A potem ładuje takie dane:
  1. INSERT
  2. INTO dupa VALUES (NULL,'czysta');

  1. INSERT
  2. INTO dupa VALUES (NULL,'brudna');
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Teraz sprawdzamy numerek klucza:
  1. SELECT LAST_INSERT_ID();

i otrzymujemy wynik 2.
Spróbujmy zmienić ten numerek.
  1. SET INSERT_ID=10

I wypełniamy dabnymi:
  1. INSERT
  2. INTO dupa VALUES (NULL,'zgrabna')

Teraz sprawdzamy numerek klucza:
  1. SELECT LAST_INSERT_ID();

i otrzymujemy wynik 10.

DZIAŁA (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Aler na mojej bazie (siększej, gdzie mam posutawiane klucze obce), polecenie
  1. SELECT LAST_INSERT_ID();
wypisuje cały czas wartość 0. Natomiast
  1. SET INSERT_ID=10
niby wykonane pomyślnie ale nie zmienia wartości.

Czy ktoś wie dlaczego?

Ten post edytował J4r0d 3.05.2005, 15:27:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Jarod
post
Post #2





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(Diwi @ 2005-05-04 18:59:45)
Hmm.. jeżeli chcesz żeby Admin miał możliwośc co jakiś czas kasowania wszystkich rekordów to polecam zapytanie
  1. TRUNCATE TABLE `tabela`
takie zapytanie wyrzuca wszystkie rekordy z tabeli a także resetuje działanie funkcji AUTO INCREMENT ustawiając licznik na 1 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam

Żeczywiście zapomniałem o tej instrukcji. Jest efektywniejsza. Dodam tylko, że pomimo zapewnień autorów pewnej ksiązki, instrukcja ta jest obsługiwana przez transakcje - czyli da się cofnąć..

@Diwi: sprawdzałem - primary key nie jest automatycznie ustawiany na 1
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 25.12.2025 - 22:31