Как я могу автоматически увеличить эту таблицу без потери данных? - PullRequest
1 голос
/ 12 июня 2011

В моей действующей базе данных есть таблица с несколькими тысячами записей.

Отслеживая ошибку этим утром, я обнаружил, что в столбце "id" таблицы не было установлено auto_increment, поэтому у меня есть 1000 записей с id = 0.

(

mysql> explain feed_items;
+--------------+--------------+------+-----+---------+-------+
| Field        | Type         | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+-------+
| id           | int(11)      | NO   |     | 0       |       |
| feed_id      | int(11)      | YES  | MUL | NULL    |       |
| title        | varchar(255) | YES  |     | NULL    |       |
| description  | text         | YES  |     | NULL    |       |
| item_link    | varchar(255) | NO   |     | NULL    |       |
| item_updated | datetime     | YES  |     | NULL    |       |
| item_id      | varchar(255) | YES  |     | NULL    |       |
| created_at   | datetime     | YES  |     | NULL    |       |
| updated_at   | datetime     | YES  |     | NULL    |       |
| is_hidden    | int(11)      | YES  |     | 0       |       |
+--------------+--------------+------+-----+---------+-------+

Что странно, так это то, что старые записи, кажется, имеют auto_incremented. Таким образом, половина моих записей имеет ожидаемый идентификатор, половина из них не

Что я хотел бы сделать, это установить для этого столбца значение auto_increment, а затем выполнить оператор, который выполняет следующее:

  • взять все feed_items, где id равен 0, упорядочено созданным ASC
  • для каждого из этих элементов я хотел бы установить идентификатор для идентификатора предыдущего элемента + 1

Хотя я не слишком разбираюсь в SQL и не хочу портить данные на своем живом сервере.

кто-нибудь может посоветовать?

1 Ответ

2 голосов
/ 12 июня 2011

в зависимости от размера вашей таблицы и возможности перевести ее в автономный режим, вы можете просто создать 2-ую таблицу с той же схемой поля и вставить, выбрав ваши данные ...затем бросьте исходную таблицу и переименуйте новую ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...