почему во время второго Insert, id сходит с ума?

237
21 марта 2018, 02:57
CREATE TABLE `devices`.`common` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `Department` INT NULL,
  `InvNumber` VARCHAR(45) NULL,
  `Name` VARCHAR(45) NULL,
  `Got` INT NULL,
  `WrittenOff` INT NULL,
  `Price` INT NULL,
  PRIMARY KEY (`id`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;
INSERT INTO devices.common (department,InvNumber,Name,Got,writtenoff,price)
    SELECT
    department,
    InvNumber,
    Name,
    Got,
    WrittenOff,
    Price
    FROM devices.main;

INSERT INTO devices.common (department,InvNumber,Name,Got,writtenoff,price)
    SELECT
    department,
    InvNumber,
    Name,
    Got,
    WrittenOff,
    Price
    FROM devices.cheap;

Answer 1

Согласно документации AUTO_INCREMENT гарантирует уникальность, но не гарантирует непрерывность в общем случае:

If the only statements executing are “simple inserts” where the number of rows to be inserted is known ahead of time, there are no gaps in the numbers generated for a single statement, except for “mixed-mode inserts”. However, when “bulk inserts” are executed, there may be gaps in the auto-increment values assigned by any given statement.

insert into table
select ... from ... another_table

можно рассматривать как “bulk insert”

READ ALSO
Ошибка в коде “aggregate function”

Ошибка в коде “aggregate function”

Доброго времени сутокИзучаю MySQL, но столкнулся с проблемой, которую никак не могу решить

178
Как правильно составить запрос к MySQL

Как правильно составить запрос к MySQL

Есть две таблицы: base_bill и base_poz В base_bill поля:

231
Изменение значения в поле по кнопке mysql

Изменение значения в поле по кнопке mysql

Есть PHP, где выводится список пользователей с их данными из БД, которые вносятся при регистрацииНа каждую запись повесил поле, где можно изменить...

173