Hubert 'depesz' Lubaczewski:等待 PostgreSQL 19 – 新增基于时间范围的 UPDATE/DELETE 命令
💡
原文英文,约200词,阅读约需1分钟。
📝
内容提要
新增的UPDATE/DELETE命令支持基于时间范围的更新和删除,用户可指定有效时间范围,命令仅影响重叠的行,并调整历史记录。对于部分在范围内的行,系统会截断应用时间并插入“时间剩余”新行。
🎯
关键要点
-
新增UPDATE/DELETE命令支持基于时间范围的更新和删除。
-
用户可以指定有效时间范围,命令仅影响重叠的行。
-
历史记录在指定范围内进行调整。
-
对于部分在范围内的行,系统会截断应用时间并插入“时间剩余”新行。
-
新行包含原始值,但应用时间列仅表示未触及的历史部分。
-
FOR PORTION OF语法的支持已添加,限制条件必须是常量。
-
执行器逻辑已更新,以插入“时间剩余”部分的新行。
-
相关文档和测试已添加。
❓
延伸问答
PostgreSQL 19 中新增的 UPDATE/DELETE 命令有什么特点?
新增的 UPDATE/DELETE 命令支持基于时间范围的更新和删除,用户可以指定有效时间范围,命令仅影响重叠的行。
如何使用 FOR PORTION OF 语法进行时间范围更新?
用户可以使用 UPDATE t FOR PORTION OF valid_at FROM '开始时间' TO '结束时间' 来指定时间范围进行更新。
在时间范围内更新时,历史记录是如何调整的?
在指定范围内,历史记录会被调整,对于部分在范围内的行,系统会截断应用时间并插入“时间剩余”新行。
执行器逻辑在新命令中有什么变化?
执行器逻辑已更新,以插入“时间剩余”部分的新行,确保记录的完整性。
FOR PORTION OF 语法的限制条件是什么?
FOR PORTION OF 语法的限制条件必须是常量,禁止使用列引用和子查询。
新增的 UPDATE/DELETE 命令对用户有什么实际影响?
用户可以更灵活地管理时间范围内的数据更新和删除,提高数据处理的精确性和效率。
➡️