Все, что вам нужно сделать, это установить auto_increment для этой таблицы на любое количество, необходимое для создания места для новых записей, которые вы хотите вставить.
Например, если вы вставили строки с идентификаторами 1-100, вы можете:
Проверьте следующее значение auto_increment командой:
select auto_increment as val from information_schema.tables where table_schema='myschema' and table_name='mytable';
Предположим, что значение будет 101 (значение, будет использоваться, если вы вставили новую строку). Вы можете «заранее» значение auto_increment командой:
alter table myschema.mytable auto_increment = 111;
Если вставить новую строку, как это:
insert into mytable (not_the_id_column) values ('test');
Он получит «следующий» идентификатор из 111. Но если указать идентификатор значения вручную, вы хорошо в этом случае до тех пор, пока вы используете какое-либо значение меньше, чем 111, так что вы можете вставить желаемые записи, как это:
insert into mytable (id, not_the_id_column) values (101, 'test101');
insert into mytable (id, not_the_id_column) values (102, 'test102');
... -- more inserts as needed
Теперь, вы должны принять соответствующие меры предосторожности при обновлении значений PK , или любое значение, которое имеет зависимости от него (внешний ключ или иное), но совершенно законно принудительно форсировать и/или заполнять значения идентификатора, если полученное значение auto_increment не дублирует тот, который уже находится в таблице.
Не связывайтесь с значениями автоматического увеличения. Если вам нужен заказ, используйте другой столбец! –
но, я пробовал, и это сработало. UPDATE 'table' SET' id' = 'id' + 10 – dngs
' Я хочу добавить 10 новых строк в начале таблицы с идентификатором от 1 до 10' - нет, вы этого действительно не хотите. Я знаю, что ты думаешь, что делаешь, но ты этого не делаешь. Все возможно, и я лично не дам вам код для совершения этого зверства.Решение, о котором вы говорите, забывает о том, что нужно возиться с 'auto_increment', создавая еще один столбец, который вы назовете' order_id', вы проиндексируете его, а затем вы закажете свои строки при * извлечении *, используя этот самый столбец. Теперь, вы можете принять мой совет, или вы можете иметь, о, так весело, когда 'auto_increment' укусит вас. И будет. –