Починка ключей у таблиц WordPress при коллизиях

  • 19.07.15
  • 12:14
  • 5586
  • 0

При починке таблиц после потери автоинкремента переопределение полей идентификаторов может привести к коллизиям. Выглядит это так:

Перенумеровать таблицу в этом случае можно обходным путём:

  1. удаляются ключи, требующие уникальности каких-либо полей:
  2. отключается автозамена нулевых значений поля при добавлении к нему автоинкремента — чтобы избежать коллизий:
  3. для поля идентификатора создаётся неуникальный ключ, затем оно переопределяется в автоинкрементное:
  4. включается автозамена нулевых значений — чтобы пронумеровать строки:
  5. содержимое строк с нулевым идентификатором добавляется в эту же таблицу, после чего сами строки удаляются:
  6. восстанавливаются уникальные ключи, создаётся первичный ключ:
  7. удаляется неуникальный ключ, созданный прежде для поля идентификаторов:

Пример с wp_comments — ключи UNIQUE отсутствуют:

Восстановление первичного ключа и автоинкремента в wp_options, поле option_name является уникальным:

Оставить комментарий

Добавить комментарий