在没有自动增量字段

时间:2018-05-10 03:56:49

标签: mysql sql

我正在使用另一个应用程序的现有数据库表。我想以固定的间隔查询新插入的记录。 通常,在AUTO INCREMENT id的表中,我可以存储最后提取的ID,并在WHERE id > :last_id等查询中使用它。但是,此表不使用AUTO INCREMENT id但使用uuid作为主键。那么有没有办法只获取新记录?

这个数据库正在使用MySQL。我无法改变数据库结构。数据量非常大,所以我不认为在WHERE uuid NOT IN (:fetch_uuids)这样的查询中传递获取的uuids是一个可行的解决方案。

编辑: 有created字段,但遗憾的是,不保证将首先插入创建较小的记录。因此存在使用它丢失记录的风险。 数据由其他应用程序插入,我只在此数据库中具有读取权限。

1 个答案:

答案 0 :(得分:0)

您的问题未说明是否有包含记录创建时间的列。如果存在,那么你可以使用它。

您已声明无法更改表格结构,但是您确定无法在现有结构中添加列吗?您可以通过添加自动增量“辅助”ID和/或记录创建时间戳来解决您的问题。如果您无法修改现有表,是否可以使用此附加信息创建新表?

您的问题的解决方案可能在this answer。您可以在现有表中添加其他列,也可以将id插入到新表中,在该表中根据原始表中的TRIGGER创建ID