Поиск новых записей в таблице MySQL - PullRequest
0 голосов
/ 26 сентября 2011

Можно ли узнать, были ли внесены новые записи в таблицу MySQL?

Например, в таблице 10 записей, а кто-то добавляет 2 новых.

Как написать строку php, чтобы обнаружить новые записи (только) и вставить их в другую таблицу?

Любая помощь будет оценена.

Ответы [ 3 ]

3 голосов
/ 26 сентября 2011

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

Несколько идей:

  • В таблице есть столбец «процессов» со значением по умолчанию 0,все, что имеет 0, является новым
  • таблица имеет некоторую запись времени, новая - это когда она моложе, чем время t
  • таблица имеет связь с той другой таблицей, которую вы упомянули, каждая запись в первой таблице, котораяне имеет записи во второй таблице new.
  • new также может означать последние значения автоинкремента X.

Итак, вы видите, чтобы получить более точный ответвам нужно будет дать больше информации о том, чего именно вы хотите достичь.

1 голос
/ 26 сентября 2011

Для этого вам потребуется реализовать какой-то механизм управления, например, добавить в таблицу столбец с именем (в качестве грубого примера) added_into_other_table.Затем проверьте в своем запросе все записи, которые имеют значение ноль для added_into_other_table.Добавьте только эти данные в новую таблицу, затем обновите исходную таблицу, установив для added_into_other_table значение 1 для всех только что обработанных записей, чтобы они больше не обрабатывались.

0 голосов
/ 26 сентября 2011

Вы можете использовать триггеры для достижения этой цели.

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

Синтаксис будет похож на этот:

CREATE TRIGGER ins_table AFTER INSERT ON first_table 
FOR EACH ROW BEGIN
    INSERT INTO second_table values(NEW.field1, NEW.field2,..., NEW.fieldn)
END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...