Podczas wstawiania danych do tabeli, która ma automatycznie zwiększany PK, muszę uzyskać ten klucz do użycia w innej instrukcji. Jak wiele pytań pokazuje na SO można to zrobić w PHP przy użyciu mysql_insert_id()
.Pobieranie ostatnich wstawionych identyfikatorów dla wielu wierszy
Jednak zgrupowałem moje wkładki, więc wstawiam więcej niż jeden wiersz na raz. Zrobiłem to, ponieważ odgadłem, że prawdopodobnie wystąpi problem z wydajnością, proszę, jeśli się mylę. W każdym razie, o ile mi wiadomo, tylkozwraca ostatni identyfikator, kiedy potrzebuję identyfikatorów dla wszystkich wstawionych wierszy.
Chyba w tym przypadku mogłem:
zrobić kilka prostych matematycznych obliczyć wszystkie identyfikatory za pomocą
mysql_insert_id()
i liczbę wierszy I weszły. Ale czy jest to zagwarantowane konsekwentnie poprawne?Stosować oświadczenia wielokrotnego wstawiania, po jednym dla każdego wiersza
Generowanie moje identyfikatory przed i nie ma sensu automatycznego.
Jestem pewien, że to musi być klasyczny problem, więc zastanawiam się, jakie są najbardziej powszechne i wskazane podejścia.
Opcja 'podejście CURRENT_TIMESTAMP' wydaje się trochę niebezpieczne dla mnie. Co jeśli ty i ktoś inny piszesz przy tym samym stole w tym samym czasie (ten sam znacznik czasu)? – tonix