В моей действующей базе данных есть таблица с несколькими тысячами записей.
Отслеживая ошибку этим утром, я обнаружил, что в столбце "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 и не хочу портить данные на своем живом сервере.
кто-нибудь может посоветовать?