Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Pomijanie wpisów przy autoincrement
Forum PHP.pl > Forum > Przedszkole
moa
Witam, chciałbym stworzyć tabelę gdzie 4 wpisy miałyby ID ustawione na 200 000, 200 001, 200 002, 200 003.

Czy jest mozliwosc by autoincrement je ignorował przy dodawaniu nowych wpisów?

Czyli np. gdy inny wpis ma ID 1, tak jak dodam nastepny by ten nowy mial ID 2 a nie 200 004


Jeśli tak to prosze o pomoc happy.gif

Z góry dziękuje! wub.gif
erix
http://forums.mysql.com/read.php?22,42817,42831

Ale spowoduje to, że przy 200k rekordów zaczną Ci się one nadpisywać. Ogólnie, takie coś, co wymyśliłeś, to raczezj nie jest dobry pomysł.
moa
to nie działa, następny news ma ID 200 004
erix
Wysil się trochę, prawdopodobnie masz w tabeli silnik MyISAM, a to jest kod dla InnoDB. Wysil się i poszukaj w Google.

W phpMyAdmin jest też odpowiednia opcja.
moa
Jest w operations opcja auto_increment gdzie inputem sie podaje nową wartość lecz to działa tak że mysql najpierw sprawdza czy nie ma wpisow o wartosci wyzszej, a jesli są to ustawia odpowiednio auto increment
erix
Fakt, mój błąd, posty do wywalenia.

Z tego, co wyczytałem, to bierze MAX(kolumna)+1 i przy auto_increment nie da się tego obejść. IMHO robienie takiej dziury trochę mija się z celem, ale nie wiem, co chcesz przez to osiągnąć.

Jeśli już koniecznie chcesz od dołu, to musisz podawać wartość tej kolumny ręcznie:
  1. SET @x = (SELECT max(id) FROM asd WHERE id <200);
  2.  
  3. INSERT INTO asd VALUES (@x, 'asdasd');
nevt
a dlaczego koniecznie i na siłę:
Cytat
...gdzie 4 wpisy miałyby ID ustawione na 200 000, 200 001, 200 002, 200 003...

questionmark.gif

nie możesz zapisać tych rekordów jako 4 pierwszysch w tabeli (ID:0, 1, 2, 3) a potem niech sobie autoincrement robi co chce...
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.