我有一個包含ID值小於20,000,000的數字的行的表。該表結構如下:在表中插入行而不影響MariaDB中的AUTO_INCREMENT
CREATE TABLE records(
id int(11) not null AUTO_INCREMENT,
... more data columns ...
) ENGINE=InnoDB AUTO_INCREMENT=16432352 DEFAULT CHARSET=utf8;
這是我的控制的系統中插入行此表和數據庫中插入這些記錄與生成的ID。
但是,我需要在這張表中插入非常大的ID(起始50,000,000)的記錄。此外,重要的是要注意,不受控制的系統插入很少的記錄,這樣我要插入的記錄不會與未受控制的系統的記錄相沖突。
進行一些測試我意識到,當我插入一個非常簡潔的ID記錄時,AUTO_INCREMENT值會跳轉到非常大的ID。例如:
首先,我檢查initial_auto_increment值:
SHOW TABLE STATUS FROM my-database like 'records';
... AUTO_INCREMENT的值是這樣的:
# Name, ... , Auto_increment, ...
'record', ... , '16432352', ...
接下來,我插入記錄有一個非常大的ID 。
INSERT INTO records (id, ...) VALUES(679456755, ...);
然後,再次檢查AUTO_INCREMENT值:
SHOW TABLE STATUS FROM my-database like 'records';
..最後的結果是這樣的:
# Name, ... , Auto_increment, ...
'record', ... , '679456756', ...
我的問題是:我該如何暫時禁用該功能AUTO_ICREMENT這樣我的ID很大的記錄不會混淆表的AUTO_INCREMENT值?
PS。我正在使用MariaDB 10.
編輯:我改變了數字,但問題是一樣的。
您是否考慮過不使用AUTO_INCREMENT? –