2014-09-03 68 views
0

我在MySQL test_info中有一个表。该表在随机时间获得插入命令,以便添加新记录。这插入可以从任何地方发射。如何显示最近插入到表

其实要做的是?

前端应该显示将其在实时的方式插入表中最近的数据。

请建议我如何解决这个问题

+0

你可以使用一个字段保存创建的时间。设置默认当前时间戳。在fetvhing后,你可以比较它,并做你想要的。 – 2014-09-03 09:33:23

+0

你可以写查询吗? – Aarthi 2014-09-03 09:36:24

+0

写什么查询? – 2014-09-03 09:37:18

回答

1

你会使用$mysqli->insert_id检索,这是自动生成的,并通过最后一个查询使用的ID。看看here

编辑:根据Thorsten Kettner的评论,您也可以使用SELECT LAST_INSERT_ID();,据我了解,它不是基于当前连接,而是全局引用。

您甚至可以使用SELECT MAX(ID)获取表格中的最后一个ID,如果设置为AUTO_INCREMENT,最有可能是最近的ID。

+0

这是最好的方法。 – 2014-09-03 09:43:50

+0

这不是仅从此连接生成的最后一个ID吗?所以你不会得到最后插入的记录,因为“这个插入可以从任何地方触发”。到目前为止我的理解。 – 2014-09-03 09:56:34

+0

@ThorstenKettner更新了我的回答 – Eliel 2014-09-03 10:05:45

0

首先,为您的客户端,检查出Server-Sent-Events。其次,您需要一种机制来检查服务器端的最新更新数据。

+0

如何编写随机插入查询。 – Aarthi 2014-09-03 09:41:02

+0

对不起,我无法理解你的意思是什么*随机插入查询* – simsim 2014-09-03 10:16:49

0

您可以使用mysql查询来获取最后的记录。在我的例子中显示了如何获得最后10条记录。

这里是按日期DESC LIMIT的例子

SELECT * FROM表顺序10

0

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应该告诉你它是什么类型的事件。

根据您使用的触发器进行替换。 你可能想保留任何下列事件* 后删除,插入的数据,更新前删除,插入 或 ,更新

附:有很多方法可以满足您的需求。不要去疯狂的触发器,并尝试在前端捕捉前端事件本身

+0

它在sql或mysql中。我想插入在MySQL中。即使用PHP。 – Aarthi 2014-09-03 10:24:53

+0

请回复ninjabber – Aarthi 2014-09-03 10:39:03

+0

示例代码为mysql。 该方法是通用的 – ninjabber 2014-09-03 10:45:38

0

SELECT * FROM your_table其中ID = MAX(ID)