Допустим, у меня есть эта простая таблица:
CREATE TABLE some_table (
id INT(11) PRIMARY KEY AUTOINCREMENT,
name VARCHAR(20)
);
с этим оператором INSERT:
INSERT INTO some_table (name) VALUES ("Foo"), ("Bar"), ("Buz");
Результат дает мне (например):
fieldCount = 0
affectedRows = 3
insertId = 18
info = 'Records: 3 Duplicates: 0 Warnings: 0',
serverStatus = 2
warningStatus = 0
После выполнения оператора SELECT я вижу, что первая вставленная строка имеет insertId = 18
; гарантируется ли, что последующий вставленный документ имеет свой идентификатор в последовательности?
Другими словами, гарантируется ли, что последующий SELECT выдаст следующие строки?
SELECT * FROM some_table WHERE id >= 18 LIMIT 3
id | name
------+--------------
18 | Foo
19 | Bar
20 | Buz
И если этот результат не гарантируется, гарантирует ли транзакция это тогда?
И если транзакция не гарантирует этого, возможно ли получить отдельные значения идентификатора в последовательности?