Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ INSERT IGNORE i auto increment

Napisany przez: DNMX 20.03.2022, 20:35:00

Mam sobie bazę danych, powiedzmy 50 000 rekordów.

1. dnia robię import z pliku .sql gdzie jest 50 001 rekordów z czego jeden nowy. Plik .sql zawiera wiersze "INSERT IGNORE..." Jeden nowy rekord jest w bazie ale z ID 100 001 a nie 50 001.

2. Dnia robię import z kolejnego pliku .sql. Jest w nim 50 003 rekordów. 50 001 już mam w bazie. Też kwerendy INSERT IGNORE. Po 100 001 mam ID 150 002 i 150 003 zamiast 100 002. Dlaczego to tak rośnie? Co zrobić, żeby ID szły kolejno tj 50 001, 50 002, 50 003 itp?

Napisany przez: trueblue 20.03.2022, 21:35:12

Jedna kwestia, to zwiększanie pola autonumer nawet w przypadku niewstawienia klucza ze względu na naruszenie więzów klucza unikalnego: https://stackoverflow.com/a/5655448
Druga, to fakt, że wstawiasz własne id.

Id klucza nie musi być ciągłe, nie ma to kompletnie znaczenia.
Nie musisz w wstawiać rekordów wraz z ich id, chyba, że wstawiasz również do innej tabeli w relacji.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)