2014-09-03 9 views
0

У меня есть таблица в MySQL test_info. Эта таблица получает команду вставки в случайное время, так что добавляется новая запись. Эта вставка может быть запущена из любого места.как отобразить недавно добавленный в таблицу

На самом деле, что делать?

Передняя часть должна отображать данные, которые были вставлены в таблицу в последнее время в режиме реального времени.

пожалуйста, предложите мне, как решить эту проблему

+0

вы можете использовать поле для экономии времени создания. установить текущую временную метку по умолчанию. после fetvhing вы можете сравнить его и сделать, что вы хотите. –

+0

может ли написать запрос? – Aarthi

+0

Какой запрос писать? –

ответ

1

Вы бы использовать $mysqli->insert_id, чтобы получить идентификатор, который был автоматически сгенерирован и используется последним запросом. Проверьте это here.

Edit: Основываясь на комментарий Торстена Кеттнер, вы также можете использовать SELECT LAST_INSERT_ID(); для моего понимания не на основе текущего соединения и вместо этого ссылаются на глобальном уровне.

Вы также можете использовать SELECT MAX(ID), чтобы получить последний идентификатор в таблице, который, скорее всего, будет самым последним, если он установлен на AUTO_INCREMENT.

+0

Это лучший способ сделать это. –

+0

Разве это не последний идентификатор, сгенерированный только из этого соединения? Таким образом, вы не получите последнюю вставленную запись, потому что «эту вставку можно запустить из любого места». До сих пор мое понимание. –

+0

@ThorstenKettner обновил мой ответ – Eliel

0

Во-первых, для вашей стороны клиента, проверьте Server-Sent-Events. Во-вторых, вам нужен механизм для проверки последних обновленных данных со стороны сервера.

+0

Как написать случайный запрос вставки. – Aarthi

+0

Извините, я не мог понять, что вы подразумеваете под * случайным вставным запросом * – simsim

0

Вы можете использовать запрос mysql для получения последних записей. В моем примере показано, как получить последние 10 записей.

вот пример

выберите * от заказа таблицы по дате DESC LIMIT 10

0

insert_id имеет некоторые ограничения, и я не знаю, как вы будете отличаться от вставок удалений. Что я буду делать будет * на вставки триггера в каждой таблице, где нужно отслеживать вставки (может быть, вы хотите, чтобы отслеживать на обновление и удаление, а)

.

Что вам, возможно, понадобится, это разделенная таблица - history_data_tab, которая содержит все исторические данные, инициируемые любым событием, которое вы хотите отслеживать.

для MySQL:

USE `db_name`; 
DELIMITER $$ 
CREATE DEFINER=`root`@`%` TRIGGER track_insert AFTER INSERT ON your_table 
FOR EACH ROW BEGIN 
     insert into historical_data_tab 
values (new.ID, 'INSERT',NOW());  

END 

обратить внимание на new.ID и NOW(). Если вам не нужен оригинальный ПК, просто вставьте NULL вместо new.ID, и любая команда Auto Increment PK позаботится обо всем остальном. NOW заселяет таблицу history_data_tab с отметками времени, в которые было инициировано событие. INSERT должен рассказать вам, что это за событие.

Замените его в соответствии с триггером, который вы используете. вы можете сохранить данные о любом из следующих событий * после удаления, вставки, обновления или до удаления, вставки, обновления

P.S. Есть много способов сделать то, что вам нужно.Не сойти с ума от триггеров и попытаться поймать передок события в передней части самого

+0

Его в sql или mysql. Я хочу вставить в mysql. т.е. я использую php. – Aarthi

+0

ответьте ninjabber – Aarthi

+0

пример кода для mysql. метод универсален – ninjabber

0

выберите * из your_table где ID = Max (ID)

Смежные вопросы