Astrolit
@Astrolit
надумано: умён, хитер, характер отсутствует

Обновлять базу данными, затирая первые старые данные?

Вопрос как добавляя в базу данные , не давать ей разрастаться - удаляя лишние первые записи, при этом чтоб индекс ключа оставался прежним? скажем есть таблица

+--------+--------+-----------+
| key_id | price | DATE |
+--------+--------+------------+
| 1 | 15890 | 16.02.03 |
| 2 | 31990 | 17.02.03 |
| 3 | 3190 | 18.02.03 |
| 4 | 1800 | 19.02.03 |
| 5 | 850 | 20.02.03 |
+--------+--------+------------+
командой INSERT INTO я добавляю новую строку данных и получаю:

+--------+--------+-----------+
| key_id | price | DATE |
+--------+--------+------------+
| 1 | 15890 | 16.02.03 |
| 2 | 31990 | 17.02.03 |
| 3 | 3190 | 18.02.03 |
| 4 | 1800 | 19.02.03 |
| 5 | 850 | 20.02.03 |
| 6 | 360 | 21.02.03 |
+--------+--------+------------+
а хотелось бы увидеть удаление первой строки но сохранить ключи!

+--------+--------+-----------+
| key_id | price | DATE |
+--------+--------+------------+
| 1 | 31990 | 17.02.03 |
| 2 | 3190 | 18.02.03 |
| 3 | 1800 | 19.02.03 |
| 4 | 850 | 20.02.03 |
| 5 | 360 | 21.02.03 |
+--------+--------+------------+
Подскажите в каком направлении искать, я даже не знаю как это процесс обозначить в поисковиках?
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@rPman
Это худшая задача для реляционных баз данных, что там будет происходить с foreign_key я вообще молчу, все решаемо но скорости будут не очень

Если нет связанных таблиц (что логично, твой id на самом деле не идентификатор, не вводи народ в заблуждение и назови по другому) в твоем случае скорее всего можно схитрить, можно key_id считать на лету, т.е. ключевое поле с autoincrement, но назови его по другому, например key_id_orig
1+key_id_orig-min(key_id_orig)

но это сработает только если удаление возможно только самой старой записи, если же будут удаления из середины, то порядок придется пересчитывать по другому, через сортировку всей таблицы по key_id_orig и подсчету колонок функцией row_number
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы