mysql - 在没有自增字段的表中查询新插入的记录
问题描述
我正在处理来自另一个应用程序的现有数据库表。我想以固定的时间间隔查询新插入的记录。通常,在具有AUTO INCREMENT
id 的表中,我可以存储最后获取的 id 并在查询中使用它,例如WHERE id > :last_id
. 但是,此表不使用AUTO INCREMENT
id 而是使用 uuid 作为主键。那么有没有办法只获取新记录?
该数据库正在使用 MySQL。我无法更改数据库结构。数据量非常大,所以我不认为在查询中传递获取的 uuidWHERE uuid NOT IN (:fetch_uuids)
将是一个可行的解决方案。
编辑:有created
字段,但不幸的是,不保证将首先插入创建的较小的记录。因此使用它存在丢失记录的风险。数据是由其他应用程序插入的,我在这个数据库中只有读取权限。
解决方案
您的问题没有说明是否有一列包含记录的创建时间。如果存在,那么您可以使用它。
您已声明无法更改表结构,但您确定无法在现有结构中添加列吗?您的问题可以通过添加自动增量“辅助”ID 和/或记录创建时间戳来解决。如果您无法修改现有表,您是否可以使用这些附加信息创建一个新表?
您的问题的解决方案可能在此答案中。您可以向现有表添加额外的列,或者将 ids 插入新表中,在新表中根据TRIGGER
原始表中的 a 创建 ID
推荐阅读
- postgresql - 我可以扩展 postgres 将字符串转换为 UUID 的方法吗?
- r - 制作比修拉更好看的树状图的方法?
- javascript - 如何修复 RichEmbed Discord.js
- jquery - jQuery ajax 在 ajax 结果中查找匹配项
- sql - MS SQL SERVER 在从池中获取连接之前经过的超时时间
- r - 转换 Python 列表并将其存储在 R 环境中。所以我可以使用 rpy2.objects.r() 访问列表
- elasticsearch - 具有过滤器匹配的 Elasticsearch 聚合
- video-streaming - 视频流在几秒钟后冻结,但声音正常
- sql - 包括存在数据的指标,但不包括在结果中
- amazon-web-services - Packer 可以在本地构建 AMI(即,不连接到 AWS)吗?