Wiem, że to stary post, ale pomyślałem, że wyjaśnię inne osoby, które mogą robić to samo, co Ty na podstawie Twojego komentarza:
Kiedy zapis zostanie usunięty proces usuwania jest wykonywana przez aktualnie wybranego wiersza ponieważ mogę tylko wybrać do rzędzie 4, ID 5 nigdy nie może być usunięte.
Naprawdę nie powinieneś odtwarzać swoich identyfikatorów. Nienaruszają rzeczy, jeśli są używane jako klucze w innej tabeli, a jeśli masz dużą bazę danych, ich odtworzenie może po prostu marnować czas, kiedy naprawdę nie ma takiej potrzeby.
Co należy zrobić, to zapisać tablicę identyfikatorów wraz z tablicą wpisów, aby wiedzieć, który identyfikator należy usunąć w zależności od wybranego wiersza (lub w inny sposób łączenia identyfikatorów i wartości, aby można było pobrać później).
W powyższym przykładzie, po tym jak ktoś usuwa wiersz z id 3, swoje macierze będzie wyglądać następująco:
entries = { "a","b","d","e" }
ids = { 1,2,4,5 }
jeśli ktoś wybiera „e”, która jest czwartą pozycję, po prostu usunąć z tabela, gdzie id jest równy czwartej wartości w tablicy ids, w tym przypadku 5.
W ten sposób, jeśli elementy są ciągle dodawane i usuwane, twoja baza danych może zakończyć się identyfikatorami 2, 34, 56 i 435. Nie ma to znaczenia, ponieważ twój kod będzie śledzić i będzie wiedział, który identyfikator usunąć.
Dlaczego chcesz to osiągnąć? Powinieneś odtworzyć bazę danych za każdym razem, gdy jakiś użytkownik zmieni coś w niej. – Leandros
dlaczego tego potrzebujesz? zamiast znaleźć uciążliwy sposób odpowiadania na twoje pytanie, wolę znaleźć sposób, aby tego nie potrzebować. – njzk2
nie. Chcę odtworzyć tabelę, a nie bazę danych.Jest kilka powodów; na przykład: po usunięciu rekordu proces usuwania jest wykonywany przez aktualnie wybrany wiersz, ponieważ mogę wybrać tylko do wiersza 4, identyfikatora 5 nigdy nie można usunąć. – Pztar