что поле ID достигло своего максимума, как быть?
поменять в базе тип поля
Поменял, но теперь не добавляется в нее вообще ничего, автоинкримент он же праймери кей он же ID, сошел с ума и теперь, как я понимаю, отсчитывает с нуля Mysql query error: [1062] Duplicate entry '0' for key 'b_iblock_element_property.PRIMARY' (400) Устанавливал его (наибольший ID+1) но не помогло, ошибка повторяется...
AI значит убрали ну тип поля же не буквально поменяли? длину только поменять индекс удалить и сделать поновой нужно т/к/ длина ключа поменялась
Не тип не менял, длину увеличили. А как правильно пересоздать индекс, не подскажите?
В том то и проблема его нет)
ALTER TABLE b_iblock_element_property CHANGE ID ID INT(18) AUTO_INCREMENT PRIMARY KEY; после выполнения запроса не ругалось не на что?
Нет, обновлял до BIGINT
зачем bigint?
ну вроде как в phpmyadmin это самый большой тип
Изменил на данный тип без ошибок
меняйте значение ai и все должно работать
ALTER TABLE b_iblock_element_property AUTO_INCREMENT = 2147483648 Не меняется....
Достаточно было бы UNSIGNED добавить. Кстати по какой-то причине во всех таблицах штатных для ID нет unsigned
А все INSERT INTO b_iblock_element_property добавляются с ID=0, а следующее добавление приводит к ошибке т.к. ID опять равно 0
совместимость если составной индекс то все референсы должны быть также unsigned по итогу либо все делать либо не делать
Вот штатные индексы. Нет ID в их составе.
и как будет AI без primary работать?
primary выше на скрине, речь же была про составные
в ядре нет а может на каком проекте и есть расширение данной таблицы внешний код какой например дописан не должна голова болеть по этому поводу данная табла не такая критичная мало где может по ИД использоваться дополнительно но всеже можно было бы и добавить/// ответ то был к вопросу почему в ядре его нет по умолчанию во всех таблах
Bigint'а нет? Или чего?
Вот я и не понимаю почему не сделали UNSIGNED везде в ядре. По сути на ровном месте порезали половину диапазона. Вброс про совместимость тоже не понял. Референсы все равно будут работать, что для INT, что для UINT
совместимость - это про либы на других языках подразумевал
(меланхолично) кто ж знал, что ряд таблиц подвергнется такому массажу...
Кстати unsigned вроде тоже потребовал бы пересоздать индекс, автоматом не факт... Не проверял правда... Но в теории он в индексе же есть
Обсуждают сегодня