как прoвеpить изменилась ли тaблицa(тaблицы) в бaзe?

Kudin

Новичок
как прoвеpить изменилась ли тaблицa(тaблицы) в бaзe?
не могу врубиться...
 

Kudin

Новичок
по работе дали задание - именно проверять - если таблица(ы) изменялись то кидать запрос (массив записывать в файл), если не изменялась - то доставать данные с сериализованного массива от прошлого запроса...
 

Kudin

Новичок
нужно какоето обращение к базу первый рас сделать... но не могу понять какое ...
думал show table status но не оно вроде ... хз (
 

zerkms

TDD infected
Команда форума
по работе дали задание - именно проверять - если таблица(ы) изменялись то кидать запрос (массив записывать в файл), если не изменялась - то доставать данные с сериализованного массива от прошлого запроса...
Это не задание, это почти наверняка попытка одеть брюки через голову.

Я бы всё таки посоветовал узнать первопричины для начала, перед тем как браться реализовывать заведомо кривое решение.
 

Kudin

Новичок
Это не задание, это почти наверняка попытка одеть брюки через голову.

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

zerkms

TDD infected
Команда форума
Kudin
Это шляпа. Я не знаю ни одного достоверного способа это сделать (не отрицаю, что они есть, тем не менее :) )

Так или иначе, как я уже говорил выше - нужно лечить болезнь, а не избавляться от симптомов. Так что я бы всё таки начал с первопричин такого задания.
 

С.

Продвинутый новичок
Изменилась по сравнению с чем? В SHOW TABLE STATUS есть дата модификации таблицы. Но с чем ты ее будешь сравнивать -- твоя проблема.
 

zerkms

TDD infected
Команда форума
С.
Там дата далеко не всегда соответствует действительному факту изменения
 

Kudin

Новичок
ок вобщем спаисибо
завтра буду доказывать боссу что это вариант через задницу )
 

zerkms

TDD infected
Команда форума
Kudin
Не, так не надо. "Обосрать каждый может" - плохая стратегия.

Лучше узнать исходную задачу и предложить лучшее решение.
 

iceman

говнокодер
что значит изменилась? был сделан алтер таблицы или данные добавились в таблицу?
 

tz-lom

Продвинутый новичок
сделай триггер который будет заполнять очередь заданий, по крону обрабатывай и очищай очередь
 

antson

Новичок
Партнер клуба
массив записывать в файл, если не изменялась - то доставать данные с сериализованного массива от прошлого запроса...
чаще всего будет медленнее чем выполнить запрос повторно при включенном кверикеше в муське.
я бы понял, если массив клался бы в мемкеш, но и тогда правильная практика просто кешировать на заданный промежуток времени.

вариант с тригерами хорош, но требует рутовских прав в муське
 

tz-lom

Продвинутый новичок
ну,для веб приложения рутовые права не потребуются всё равно
а разработчик БД без рутовых прав к ней само по себе довольно странная ситуация
 

Major

Новичок
Сначала надо понять, что такое "изменение таблицы". Вот я понимаю, что это в принципе ALTER, тоесть изменение струткуры, тогда как бы отсюда и следствие ответа на вопрос. А вот если тебе надо узнать, какие записи модифицировались в таблице, то сделай поле,в котором будет поле modified timestump и пропиши на него что-то типа


CREATE TABLE `msgs` (
`id` INT PRIMARY KEY AUTO_INCREMENT,
`msg` VARCHAR(256),
`ts_create` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`ts_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)

как-то так, точнее посмотришь в справочнике...


Суть-то какая? Цель так и не услышали и нет конкретики, что значит термин - "модификация таблицы"
 

Major

Новичок
Так вот суть - проверяй дату создания и модификации записи - это тебе отчет о "модифицированных таблицах". Можно даже написать триггер и вести лог изменений. Вопрос - босс попроситл отслеживать записи в БД? Чтобы знать какая девочка какую запись испортила или удалила во время работы в CMS ?
 
Сверху