西班牙
斯潘4
大家好,
我在使用postgres关系数据库时遇到问题。基本上,我是从一个(或多个)xmls文件中读取数据,转换/组合/编辑数据,然后写入多个不同的postgres表,这些表都通过“master”表中的主键链接在一起。当XML文件被更新并且记录丢失时,我需要从主表中删除该记录,但是由于其他表中的相关记录,我无法这样做。显然,其他表中的相关记录也需要删除(显然,在删除“master”记录之前)。
有没有人有什么逻辑来证明这一点?似乎我需要找到已删除的“主”记录(目前我正在使用更新检测器),然后不知何故获取其他表中所有相关记录的列表,删除它们,然后删除“主”记录。任何提示或建议将不胜感激!
娜塔莎
您好!@娜塔莎,我认为您走在正确的轨道上,但不需要在其他表中创建相关记录的列表。如果您可以收集应该从主表中删除的所有记录的key字段的值,那么您可以事先使用sqlexecutor从其他表中删除所有相关记录。
可以使用工作流中的特性属性动态创建sql delete语句。亚搏在线例如,可以设置这样的内容。
从@value(tablename)中删除,其中@value(fieldname)=@value(value)
从tours.tour_url删除其中tour_id = '@Value(tour_id)'而且,如果在目标数据库具有从其中的每一个对应的记录应当删除两个或更多个相关的表,此设置也有可能(使用分号作为语句之间分隔符)。
FME_SQL_DELIMITER;从tours.tour_url其中tour_id = '@Value(tour_id)' 删除;从tours.tour_foo其中tour_id = '@Value(tour_id)' 删除;从tours.tour_bar其中tour_id = '@Value(tour_id)' 删除;另外,关于为表/字段名引号的规则取决于目标数据库格式。
?2019安全亚搏在线软件公司|法律