У меня есть две таблицы, items
и items_archive
. Оба имеют одинаковые столбцы, и единственные строки, о которых вам нужно беспокоиться, это то, что у них есть строка идентификатора и строка метки времени, которые будут использоваться для упорядочения и замены идентификаторов.
Вот проблема, я недавно восстановил кучу новых строк до items_archive
из старых текстовых данных. Эти старые текстовые данные НЕ имели исходных идентификаторов, поэтому я начал просто считать отрицательно, чтобы не влиять на существующие идентификаторы в любой таблице. Однако, не после проверки я вижу, что вещи на самом деле выстраиваются совершенно идеально, и я хочу заменить отрицательные идентификаторы на их правильные.
Вот как выглядит мой текущий запрос и данные -
SELECT * FROM (
SELECT idx,t_stamp, 'items' as src FROM items
UNION
SELECT idx,t_stamp, 'archive' as src FROM items_archive
) as t
ORDER BY t.t_stamp DESC;
дает таблицу, подобную этой
id t_stamp src
==================================
1878 2018-09-08 09:54:40 pallets
1877 2018-09-08 09:02:58 pallets
1876 2018-09-07 16:07:45 pallets
-808 2018-09-06 09:53:39 archive
-801 2018-09-05 13:43:52 archive
1873 2018-09-05 13:00:32 archive
-800 2018-09-05 11:48:55 archive
1871 2018-09-05 11:05:13 archive
Очевидно, что -808 должно быть 1875, -801 должно быть 1874, и -800 должно быть 1872. Как я могу добиться этого в массовом масштабе?
Я подумал, может быть, создать еще одну временную таблицу, в которой будут все идентификаторы от минимального до максимального, а также временные метки в порядке, основанном на таблице, которую я только что показал вам. Затем я могу присоединиться к отметкам времени и просто обновить строки в моей архивной таблице. Я могу сделать временную таблицу с t_stamps, но я не знаю, как упорядочить идентификаторы теперь в новом столбце от max до min в порядке отметки времени. Как я могу это сделать?
Или, если есть другой способ думать, пожалуйста, дайте мне знать. Мое подробное ручное наблюдение за этой крошечной таблицей (~ 2 тыс. Строк) показывает, что негативы идеально помещаются на место.
Использование MySQL 5.6.