我在MySQL test_info中有一個表。該表在隨機時間獲得插入命令,以便添加新記錄。這插入可以從任何地方發射。如何顯示最近插入到表
其實要做的是?
前端應該顯示將其在實時的方式插入表中最近的數據。
請建議我如何解決這個問題
我在MySQL test_info中有一個表。該表在隨機時間獲得插入命令,以便添加新記錄。這插入可以從任何地方發射。如何顯示最近插入到表
其實要做的是?
前端應該顯示將其在實時的方式插入表中最近的數據。
請建議我如何解決這個問題
你會使用$mysqli->insert_id
檢索,這是自動生成的,並通過最後一個查詢使用的ID。看看here。
編輯:根據Thorsten Kettner的評論,您也可以使用SELECT LAST_INSERT_ID();
,據我瞭解,它不是基於當前連接,而是全局引用。
您甚至可以使用SELECT MAX(ID)
獲取表格中的最後一個ID,如果設置爲AUTO_INCREMENT
,最有可能是最近的ID。
這是最好的方法。 – 2014-09-03 09:43:50
這不是僅從此連接生成的最後一個ID嗎?所以你不會得到最後插入的記錄,因爲「這個插入可以從任何地方觸發」。到目前爲止我的理解。 – 2014-09-03 09:56:34
@ThorstenKettner更新了我的回答 – Eliel 2014-09-03 10:05:45
首先,爲您的客戶端,檢查出Server-Sent-Events。其次,您需要一種機制來檢查服務器端的最新更新數據。
您可以使用mysql查詢來獲取最後的記錄。在我的例子中顯示瞭如何獲得最後10條記錄。
這裏是按日期DESC LIMIT的例子
SELECT * FROM表順序10
INSERT_ID有一定的限制,我不知道你會如何不同,從插入刪除。 我會做什麼將在每個地方,你需要跟蹤插入 表插入觸發器*(可能是你將要跟蹤更新和刪除以及)
。
你可能需要的是一個分離的表 - historical_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()。如果你不需要原始的PK,只需在NULL中插入NULL,任何Auto Increment PK都會處理剩下的事情。現在將填充historical_data_tab表格,其中包含事件觸發時間的時間戳。 INSERT應該告訴你它是什麼類型的事件。
根據您使用的觸發器進行替換。 你可能想保留任何下列事件* 後刪除,插入的數據,更新前刪除,插入 或 ,更新
附:有很多方法可以滿足您的需求。不要去瘋狂的觸發器,並嘗試在前端捕捉前端事件本身
SELECT * FROM your_table其中ID = MAX(ID)
你可以使用一個字段保存創建的時間。設置默認當前時間戳。在fetvhing後,你可以比較它,並做你想要的。 – 2014-09-03 09:33:23
你可以寫查詢嗎? – Aarthi 2014-09-03 09:36:24
寫什麼查詢? – 2014-09-03 09:37:18