在没有自动递增字段的表中查询新插入的记录

mklgxw1f  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(270)

我正在处理来自另一个应用程序的现有数据库表。我想以固定的间隔查询新插入的记录。通常,在一张table上 AUTO INCREMENT id,我可以存储最后获取的id并在查询中使用它,如 WHERE id > :last_id . 但是,此表不使用 AUTO INCREMENT 但使用uuid作为主键。那么,有没有办法只获取新记录?
这个数据库使用的是mysql。我无法更改数据库结构。数据量非常大,所以我认为在查询中传递获取的uuid WHERE uuid NOT IN (:fetch_uuids) 将是一个可行的解决方案。
编辑:有 created 字段,但遗憾的是,不能保证先插入创建的记录中的较小值。因此使用它有丢失记录的风险。数据是由其他应用程序插入的,我在该数据库中只有读取权限。

c6ubokkw

c6ubokkw1#

您的问题没有说明是否有包含记录创建时间的列。如果这个存在,那么你可以用这个。
您已经声明不能更改表结构,但确实不能将列添加到现有结构中吗?您的问题可以通过添加自动递增的'secondary'id和/或记录创建时间戳来解决。如果您不能修改现有的表,您是否可以用这些附加信息创建一个新表?
你的问题的解决办法可能就在这个答案里。您可以向现有表中添加额外的列,也可以将id插入新表中,在新表中根据 TRIGGER 从原始表格

相关问题