0
我们如何才能找到更新的列值的差异,例如,如果我们有一个名为path的列,并且它的值为'/ home/rafiq/Desktop',现在如果更新了路径到'/ home/user/Desktop',我只需要获得'user'作为差异值。如果有任何函数或任何逻辑来获取OLD和NEW值中的差异字符串,请帮助。更新前查找postgres中varchar列更新的值差异
路径栏更新后
path
/home/user/Desktop
路径列
path
/home/admin/vm/Desktop
在这里,我需要得到“管理/ VM”使用触发器来更新该行中的其他列的值,任何帮助将不胜感激。
什么可以改变:
- /home和/桌面是开始和之间的任何路径,唯一路径结束可以改变。即使有更多的常用文件夹,也应报告OLD和NEW路径的差异。如果我们用'/ home/A/C/Desktop'更新'/ home/A/B/Desktop',则只应报告'C'。
- 我只关心/改变之间的整个部分。即如果/ home/admin/blah更改为/ home/administration/blah,则输出应为'administration' 我正在使用postgres 9.3希望现在已经清楚。
这不是一个简单的问题,甚至没有明确界定。例如,如果你之前拥有'/ home/animal/Desktop'和'/ home/admin/Desktop',你期望输出什么?基于角色位置的差异(似乎不那么)还是其他? –
基于共同的开始和结局(虽然不固定)的差异,'/ home /'和'/ Desktop'在你的情况下,输出应该是'admin',希望在这种情况下清除 – RAFIQ
,你应该写一个自定义比较函数 –