Jestem bardzo zaniepokojony tym dziwnym zachowaniem, które widzę w auto_increment
wartości zapisanej w bidID tabeli ofert po wykonaniu masowego wstawiania przy użyciu procedury składowanej:
INSERT INTO Bids (itemID, buyerID, bidPrice)
SELECT itemID, rand_id(sellerID, user_last_id), FLOOR((1 + RAND())*askPrice)
FROM Items
WHERE closing BETWEEN NOW() AND NOW() + INTERVAL 1 WEEK ORDER BY RAND() LIMIT total_rows;
Na przykład, jeśli auto_increment
wartość bidID wynosi 101 na początku, a wstawiłem 100 wierszy, wartość końcowa staje się 213 zamiast 201. Jednak bidID tych wstawionych wierszy działa sekwencyjnie do maksymalnie 201.
Po sprawdzeniu,
SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
+--------------------------+-------+
Nie mam pojęcia, dlaczego tak się dzieje. Co może powodować skok auto increment
wartości?
show variables like '%innodb_autoinc_lock_mode%';
produkcją?