LINUX.ORG.RU

История изменений

Исправление crutch_master, (текущая версия) :

Что имеется ввиду под «+ дамп id изменённых строк+имён таблиц+ревизия куда-нибудь» не понял

Вешаешь на каждую таблицу триггеры, которые вставляют в какую-нибудь другую таблицу id,имя таблицы,timestamp,какой-нибудь счётчик.

в той же самой БД (можно в другой если будет мешать)для каждой «tablename» будет создана «tablename_log»

И зачём тебе 2х таблиц, когда можно все изменения тянуть с одной.

При Вашем подходе каким образом с точки зрения последующего алгоритма выбирать изменившиеся данные

Как-то так:

select table1.* from table1,log 
       where log.table = "table1" 
             and (log.timestamp > somedate 
             or log.recordId > someRecord)
             and log.id = table1.id
Но, здесь я не учёл вариант, когда данные могут затереться двумя update. Короче всё придётся дампить, если там возможны затирания.

Исправление crutch_master, :

Что имеется ввиду под «+ дамп id изменённых строк+имён таблиц+ревизия куда-нибудь» не понял

Вешаешь на каждую таблицу триггеры, которые вставляют в какую-нибудь другую таблицу id,имя таблицы,timestamp,какой-нибудь счётчик.

в той же самой БД (можно в другой если будет мешать)для каждой «tablename» будет создана «tablename_log»

И зачём тебе 2х таблиц, когда можно все изменения тянуть с одной.

При Вашем подходе каким образом с точки зрения последующего алгоритма выбирать изменившиеся данные

Как-то так:

select table1.* from table1,log 
       where log.table = "table1" 
             and log.timestamp > somedate 
             or log.recordId > someRecord 
             and log.id = table1.id
Но, здесь я не учёл вариант, когда данные могут затереться двумя update. Короче всё придётся дампить, если там возможны затирания.

Исправление crutch_master, :

Что имеется ввиду под «+ дамп id изменённых строк+имён таблиц+ревизия куда-нибудь» не понял

Вешаешь на каждую таблицу триггеры, которые вставляют в какую-нибудь другую таблицу id,имя таблицы,timestamp,какой-нибудь счётчик.

в той же самой БД (можно в другой если будет мешать)для каждой «tablename» будет создана «tablename_log»

И зачём тебе 2х таблиц, когда можно все изменения тянуть с одной.

При Вашем подходе каким образом с точки зрения последующего алгоритма выбирать изменившиеся данные

Как-то так:

select table1.* from table1,log 
       where log.table = "table1" 
             and timestamp > somedate 
             or recordId > someRecord 
             and log.id = table1.id
Но, здесь я не учёл вариант, когда данные могут затереться двумя update. Короче всё придётся дампить, если там возможны затирания.

Исправление crutch_master, :

Что имеется ввиду под «+ дамп id изменённых строк+имён таблиц+ревизия куда-нибудь» не понял

Вешаешь на каждую таблицу триггеры, которые вставляют в какую-нибудь другую таблицу id,имя таблицы,timestamp,какой-нибудь счётчик.

в той же самой БД (можно в другой если будет мешать)для каждой «tablename» будет создана «tablename_log»

И зачём тебе 2х таблиц, когда можно все изменения тянуть с одной.

При Вашем подходе каким образом с точки зрения последующего алгоритма выбирать изменившиеся данные

Как-то так:

select table1.* from table1,log 
       where log.table = "table1" 
             and timestamp > somedate 
             or recordId > someRecord 
             and log.id = table1.id
Но, здесь я не учёл вариант, когда данные могут затереться двумя update. Лучше решить задачу до того, как запрос попадёт в базу данных.

Исправление crutch_master, :

Что имеется ввиду под «+ дамп id изменённых строк+имён таблиц+ревизия куда-нибудь» не понял

Вешаешь на каждую таблицу триггеры, которые вставляют в какую-нибудь другую таблицу id,имя таблицы,timestamp,какой-нибудь счётчик.

в той же самой БД (можно в другой если будет мешать)для каждой «tablename» будет создана «tablename_log»

И зачём тебе 2х таблиц, когда можно все изменения тянуть с одной.

При Вашем подходе каким образом с точки зрения последующего алгоритма выбирать изменившиеся данные

Как-то так:

select table1.* from table1,log 
       where log.table = "table1" 
             and timestamp > somedate 
             or recordId > someRecord 
             and log.id = table1.id
Но, здесь я не учёл вариант, когда данные могут затереться двумя update.

Исходная версия crutch_master, :

Что имеется ввиду под «+ дамп id изменённых строк+имён таблиц+ревизия куда-нибудь» не понял

Вешаешь на каждую таблицу триггеры, которые вставляют в какую-нибудь другую таблицу id,имя таблицы,timestamp,какой-нибудь счётчик.

в той же самой БД (можно в другой если будет мешать)для каждой «tablename» будет создана «tablename_log»

И зачём тебе 2х таблиц, когда можно все изменения тянуть с одной.

При Вашем подходе каким образом с точки зрения последующего алгоритма выбирать изменившиеся данные

Как-то так:

select from table1,log where log.table = "table1" and timestamp > somedate or recordId > someRecord and log.id = table1.id
Но, здесь я не учёл вариант, когда данные могут затереться двумя update.