В течение десяти лет мы использовали одну и ту же пользовательскую сортировку в наших таблицах, и мне интересно, есть ли другое решение, которое включает меньше обновлений, тем более что сегодня мы хотели бы иметь дату репликации / публикации и не будем ' Мне бы хотелось, чтобы наша репликация копировала ненужные записи. Я посмотрел на вложенные множества, но, похоже, он нам не подходит.
Базовый стол:
id | a_sort
---+-------
1 10
2 20
3 30
После вставки:
insert into table (a_sort) values(15)
Запись на второй позиции.
id | a_sort
---+-------
1 10
2 20
3 30
4 15
Заказ стола с:
select * from table order by a_sort
и использование всех записей a_sort с обновлением как минимум id = (2,3,4)
конечно, даст желаемый результат:
id | a_sort
---+-------
1 10
4 20
2 30
3 40
Имена столбцов, количество столбцов, типы данных, возможное объединение, возможные триггеры или способ, которым выполняется преобразование, не имеют отношения к проблеме. Также мы нашли несколько довольно удобных способов быстрого выполнения этой задачи.
только; Как, черт возьми, мы можем уменьшить количество обновлений в БД до 1 или 2 максимум.
Похоже, очень распространенная проблема.
Капитан, очевидно, во мне однажды «использует a_sort float (53), вставляет с использованием фиксированного значения ordervaluefirstentry + abs (ordervaluefirstentry-ordervaluenextentry) / 2».
Но это позволило бы только около 1040 «промежуточных» записей - так что никогда не прибегать к помощи немного проблематично;)