Ошибка Out of range value for column ID

Внос даных выбивает ошибку 167 Out of range value for column 'id' at row 1. Тип данных колонки id - INT. Но вот в чём беда максимальное значение инта больше двух милиардов, но в БД максимально существующий айдишник чуть больше 77 милионов. Последний айди записи 77683102. A show create table AUTO_INCREMENT=78683103. Версия БД mysql Ver 15.1 Distrib 10.2.11-MariaDB, for Linux (x86_64) using readline 5.1

CREATE TABLE `counter_history` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `counter_id` int(11) DEFAULT NULL,
  `source_consuming_units_id` int(11) DEFAULT NULL,
  `source_type_id` int(11) DEFAULT NULL,
  `date` datetime DEFAULT NULL,
  `created_date` datetime DEFAULT NULL,
  `value` double NOT NULL,
  `isActive` tinyint(1) NOT NULL,
  `is_verification` tinyint(1) NOT NULL,
  `diff_value` double NOT NULL,
  `temperature` float NOT NULL,
  `isInterpolation` tinyint(1) NOT NULL,
  `original_value` double NOT NULL,
  `outside_temperature` double NOT NULL,
  `date_date` date DEFAULT NULL,
  `color` varchar(28) COLLATE utf8_unicode_ci DEFAULT NULL,
  `tax_id` int(11) DEFAULT NULL,
  `day_id` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `tax_value` double NOT NULL,
  PRIMARY KEY (`id`),
  KEY `IDX_A9D12C6AFCEEF2E3` (`counter_id`),
  KEY `IDX_A9D12C6AA9092043` (`source_consuming_units_id`),
  KEY `IDX_A9D12C6A8C9334FB` (`source_type_id`),
  KEY `date_date` (`date_date`),
  KEY `IDX_A9D12C6AB2A824D8` (`tax_id`),
  KEY `active_counter_history` (`day_id`,`counter_id`,`isActive`),
  KEY `date_date_2` (`date_date`),
  CONSTRAINT `FK_A9D12C6A8C9334FB` FOREIGN KEY (`source_type_id`) REFERENCES `source_type` (`id`) ON DELETE CASCADE,
  CONSTRAINT `FK_A9D12C6A9C24126` FOREIGN KEY (`day_id`) REFERENCES `date` (`day`) ON DELETE SET NULL,
  CONSTRAINT `FK_A9D12C6AA9092043` FOREIGN KEY (`source_consuming_units_id`) REFERENCES `source_consuming_units` (`id`) ON DELETE CASCADE,
  CONSTRAINT `FK_A9D12C6AB2A824D8` FOREIGN KEY (`tax_id`) REFERENCES `tax` (`id`) ON DELETE SET NULL,
  CONSTRAINT `FK_A9D12C6AFCEEF2E3` FOREIGN KEY (`counter_id`) REFERENCES `counters` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=78683103 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
create definer = energoservic@`127.0.0.1` trigger before_counter_history_insert
    before insert
    on counter_history
    for each row
BEGIN
            set NEW.date_date = date(NEW.date);
        END;
create definer = root@`127.0.0.1` trigger update_building_monthly_counter_history_after_delete
    after delete
    on counter_history
    for each row
BEGIN
    IF EXISTS(SELECT id FROM counters WHERE id = OLD.counter_id) THEN
        BEGIN

            SELECT building_id INTO @buildingId FROM counters WHERE id = OLD.counter_id LIMIT 1;
            UPDATE building_monthly_counter_history
            SET value = value - OLD.diff_value
            WHERE building_id = @buildingId
              AND source_type_id = OLD.source_type_id
              AND counter_id = OLD.counter_id
              AND DATE_FORMAT(month, '%Y-%m') = DATE_FORMAT(OLD.date_date, '%Y-%m');
        END;
    END IF;

END;

create definer = root@`127.0.0.1` trigger update_building_monthly_counter_history_after_insert
    after insert
    on counter_history
    for each row
BEGIN
    IF NEW.date_date IS NOT NULL AND EXISTS(SELECT id FROM counters WHERE id = NEW.counter_id) THEN
        BEGIN
            SELECT id, parent_id
            INTO @buildingId, @parentId
            FROM building
            WHERE id = (SELECT building_id FROM counters WHERE id = NEW.counter_id LIMIT 1)
            LIMIT 1;
            SELECT source_type_id
            INTO @sourceType
            FROM counters
            WHERE id = NEW.counter_id
            LIMIT 1;
            INSERT INTO building_monthly_counter_history (`id`, `subject_id`, `building_id`, `source_type_id`,
                                                          `counter_id`, `month`, `value`)
            VALUES (null,
                    @parentId,
                    @buildingId,
                    @sourceType,
                    NEW.counter_id,
                    DATE_ADD(DATE_ADD(LAST_DAY(NEW.date_date), INTERVAL 1 DAY), INTERVAL -1 MONTH),
                    NEW.diff_value)
            ON DUPLICATE KEY UPDATE value = value + NEW.diff_value;
        END;
    END IF;
END;


create definer = root@`127.0.0.1` trigger update_building_monthly_counter_history_after_update
    after update
    on counter_history
    for each row
BEGIN
    IF EXISTS(SELECT id FROM counters WHERE id = OLD.counter_id) THEN
        BEGIN
            SELECT building_id INTO @buildingId FROM counters WHERE id = OLD.counter_id LIMIT 1;
            IF NOT EXISTS(
                    SELECT id
                    FROM building_monthly_counter_history
                    WHERE building_id = @buildingId
                      AND source_type_id = OLD.source_type_id
                      AND counter_id = OLD.counter_id
                      AND DATE_FORMAT(month, '%Y-%m') = DATE_FORMAT(OLD.date_date, '%Y-%m')
                )
            THEN
                BEGIN
                    SELECT id, parent_id
                    INTO @buildingId, @parentId
                    FROM building
                    WHERE id = (SELECT building_id FROM counters WHERE id = NEW.counter_id LIMIT 1)
                    LIMIT 1;
                    SELECT source_type_id
                    INTO @sourceType
                    FROM counters
                    WHERE id = NEW.counter_id
                    LIMIT 1;
                    INSERT INTO building_monthly_counter_history (`id`, `subject_id`, `building_id`, `source_type_id`,
                                                                  `counter_id`, `month`, `value`)
                    VALUES (null,
                            @parentId,
                            @buildingId,
                            @sourceType,
                            NEW.counter_id,
                            DATE_ADD(DATE_ADD(LAST_DAY(NEW.date_date), INTERVAL 1 DAY), INTERVAL -1 MONTH),
                            NEW.diff_value)
                    ON DUPLICATE KEY UPDATE value = value + NEW.diff_value;
                END;
            ELSE
                SELECT building_id INTO @buildingId FROM counters WHERE id = OLD.counter_id LIMIT 1;
                UPDATE building_monthly_counter_history
                SET value = value + (NEW.diff_value - OLD.diff_value)
                WHERE building_id = @buildingId
                  AND source_type_id = OLD.source_type_id
                  AND counter_id = OLD.counter_id
                  AND DATE_FORMAT(month, '%Y-%m') = DATE_FORMAT(OLD.date_date, '%Y-%m');
            END IF;
        END;
    END IF;
END;



Ответы (0 шт):