Показать сообщение отдельно
  #1 (permalink)  
Старый 13.12.2018, 13:54
Аватар для xShift
Профессор
Отправить личное сообщение для xShift Посмотреть профиль Найти все сообщения от xShift
 
Регистрация: 22.11.2016
Сообщений: 212

Существующей таблице в использовании добавить автоинкремент
Взял работенку и нарвался на херово спроектированную базу данных. Пытался сделать ALTER TABLE чтобы поле ID получило автоинкремент, который ранее таблице не присвоен. Получаю ошибки типа не может быть такого типа или невозможно выполнить операцию из-за какой-то еще несостыковки. Это из-за чего? Из-за того, что таблица в использовании или из-за того, что индексы уже идут не поп порядку? Есть идеи как решить? Это делает мой код более менее сносным на текущем проекте без костылей.

Задача простенькая. Сделать агрегацию заказов с внешних интернет магазинов на CRM которая использует 2 таблицы для хранения заказа с привязкой ID заказа к ID корзины не очевидным недокументированным образом и не использует автоинкремент по ключевому полю так как было бы должно. Матерюсь и отрыгиваю кислоту в адрес ваятеля, но решить как-то надо и неприятно то, что из-за этой гребаной архитектуры у меня на два SELECT больше чем нужно, чтобы синхронизировать ID.

Может кто знает как ALTER навернуть на такие таблицы, когда они уже заполнены. Автоинкремент там не был присвоен.
Ответить с цитированием