Задать вопрос

Кто правил ошибку «ALTER TABLE `b_iblock_element_property` CHANGE `ID` `ID` int NOT NULL auto_increment»?

Всем привет.
В проверке системы вылезла не исправляемая ошибка , кто то правил ее?

ALTER TABLE `b_iblock_element_property` CHANGE `ID` `ID` int NOT NULL auto_increment;


672a3538c0e87207451756.png
672a352670298986206426.png
  • Вопрос задан
  • 502 просмотра
Подписаться 2 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@Okeanchik
Пошаговая инструкция:
1. Создать резервную копию:
Перейдите: Настройки → Инструменты → Резервное копирование.

2. Проверьте зависимости
Настройки → Настройки продукта → Настройки модулей → Инфоблоки → SQL-запрос
Вставить запрос и выполнить:
SELECT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE REFERENCED_TABLE_NAME = 'b_iblock_element_property' AND REFERENCED_COLUMN_NAME = 'ID';


3. SQL-запрос для изменения типа (2 варианта)

Вариант 1. Простое изменение (если после шага 2 будет надпись "нет данных")
ALTER TABLE `b_iblock_element_property` 
MODIFY `ID` BIGINT NOT NULL AUTO_INCREMENT;


Вариант 2. Безопасное изменение (если будут данные зависимостей)
SET FOREIGN_KEY_CHECKS=0;
ALTER TABLE `b_iblock_element_property` 
MODIFY `ID` BIGINT NOT NULL AUTO_INCREMENT;
SET FOREIGN_KEY_CHECKS=1;


4. Проверьте результат
DESCRIBE `b_iblock_element_property`;
Должно получиться так:
+---------------------+------------+------+-----+---------+----------------+
| Field               | Type       | Null | Key | Default | Extra          |
+---------------------+------------+------+-----+---------+----------------+
| ID                  | bigint(20) | NO   | PRI | NULL    | auto_increment |  <-- Успех!
| ...                 | ...        | ...  | ... | ...     | ...            |
+---------------------+------------+------+-----+---------+----------------+


5. Почистить кэш
очистите кеш Битрикс (Админка → Настройки → Настройки продукта → Автокеширование → Очистка файлов кеша →Все).

6. Если что-то пойдет не так
Откатитесь на бэкап
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы