2013-11-07 1 views
0

Я пытаюсь переместить таблицу, содержащую миллиарды строк, в новый каталог в MySQL 5.6. Я пытаюсь скопировать таблицу1 в таблицу2 и там путем отбрасывания таблицы1, а затем переименовать таблицу2 в таблицу1.auto increment holes in insert statement mysql 5.6

CREATE TABLE `table2` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `col1` int(11) DEFAULT NULL, 
    `col2` int(11) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `unique_col1_col2` (`col1`,`col2`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 DATA DIRECTORY='/mysql_data/'; 

Эта процедура используется для выполнения этой операции.

DROP PROCEDURE IF EXISTS copytables; 
CREATE PROCEDURE `copytables`() 
begin 
DECLARE v_id INT(11) unsigned default 0; 
declare maxid int(11) unsigned default 0; 
select max(id) into maxid from table1; 
while v_id < maxid do 
insert into table2(col1,col2) 
select fbpost_id,fbuser_id from table1 where id >= v_id and id <v_id+100000 ; 
set v_id=v_id+100000; 
select v_id; 
select max(id) into maxid from table1; 
select maxid; 
end while; 
end; 

Но теперь я получаю пробелы в столбце ид после каждой партии 100000 в table2 (после следующего идентификатора ID 199999 является 262141). Таблица 1 не содержит пробелов в столбце id.

ответ

1

Задать вопрос: https://www.google.com/search?q=auto_increment+mysql+gaps+innodb Этот вопрос объясняется first result.

Как правило, вы должны быть в состоянии рассказать людям, что вы пробовали, и почему он не работает. В этом случае это всего лишь особенность/характеристика двигателя InnoDB, который позволяет быстро работать на больших объемах.

0

Поля автоматического увеличения не гарантируют, что они будут плотными, они просто гарантированно дадут вам уникальные значения. Обычно будет делать это, предоставляя вам плотные (последовательные) значения, но это не обязательно. Он зарезервирует ряд значений, которые могут быть отброшены, если они не будут использоваться. См. http://dev.mysql.com/doc/refman/5.6/en/example-auto-increment.html

 Смежные вопросы

  • Нет связанных вопросов^_^