我在MySQL test_info中有一个表。此表在随机时间获取插入命令,以便添加新记录。这个插入物可以从任何地方发射。
其实要做的是什么?
前端应该以实时方式显示最近插入表中的数据。
请建议我如何解决这个问题
答案 0 :(得分:1)
您可以使用$mysqli->insert_id
来检索上次查询自动生成和使用的ID。请查看here。
编辑:根据Thorsten Kettner的评论,您还可以使用SELECT LAST_INSERT_ID();
,据我所知,这不是基于当前连接,而是全局引用。
您甚至可以使用SELECT MAX(ID)
获取表格中的最后一个ID,如果设置为AUTO_INCREMENT
,则最有可能是最新的。
答案 1 :(得分:0)
首先,对于您的客户端,请查看Server-Sent-Events。 其次,您需要一种机制来检查服务器端的最新更新数据
答案 2 :(得分:0)
您可以使用mysql查询来获取最后的记录。在我的示例中显示了如何获取最后10条记录。
这是示例
从表格顺序中选择*按日期DESC LIMIT 10
答案 3 :(得分:0)
insert_id有一些限制,我不确定你将如何区别于删除。 我要做的就是在每个表中需要跟踪插入的插入触发器上 (可能你想跟踪更新和删除)
您可能需要的是一个单独的表格 - historical_data_tab ,其中包含您要跟踪的任何事件触发的所有历史数据。
for 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代替new.ID,任何自动增量PK将负责其余的工作。现在,将使用触发事件的时间戳填充 historical_data_tab 表。 INSERT应该告诉你它是什么类型的事件。
根据您使用的触发器进行更换。 您可能希望保留以下任何事件的数据* 删除后,插入,更新 要么 在删除,插入,更新之前
P.S。有很多方法可以满足您的需求。不要对触发器发疯,并尝试在前端捕捉前端事件
答案 4 :(得分:0)
从your_table中选择*,其中ID = Max(ID)