У меня есть две таблицы mysql, нужно запустить его идентификатор столбца с автоматическим приращением с последним значением последней вставленной строки в другой таблице (плюс 1).Сбросить значение автоинкрементного значения в скрипте mysql
Согласно тузд инструкции вы можете перезапустить значение столбца автоматического приращения, как это:
mysql> ALTER TABLE tbl AUTO_INCREMENT = 100;
Однако, это не представляется возможным:
mysql> ALTER TABLE tb2 AUTO_INCREMENT = (SELECT MAX(id) FROM tbl1);
Мне нужно выполнить что-то вроде этого, потому что Я заполняю таблицы, используя скрипт. Есть ли другой способ достичь этого?
Необходимость управлять индексом auto_increment обычно является симптомом дефекта дизайна. Почему идентификаторы таблиц должны соотноситься таким образом? –
Не думайте, что инструкции SELECT работают в этой ситуации. Вы всегда можете запросить его сначала с tbl1. По умолчанию автоинкремент устанавливается на последнюю запись в этой таблице. Поэтому будьте осторожны, чтобы вы не перезаписывали значения в tbl2 с этими tbl1 - они могут уже существовать в tbl2. Если вам нужно, чтобы они были одинаковыми, не используйте автоматический прирост в целом и просто обновляйте id в tbl2 с помощью параметра tbl1. – Alec
Обе таблицы относятся к третьей таблице, которая будет генерировать идентификаторы их строк в будущем. Поскольку мне нужно перенести данные с помощью сценария, мне легче заполнить одну таблицу, затем вторую, затем заполнить таблицу генераторов, а затем создать внешние ключи. – Lucia