我有一个表(在informix中),它存储两列:empId和status(Y / N) . 还有一些其他脚本在运行时会根据特定条件更新这些employeeID的状态 . 手头的任务是,用户提供包含employee-ID的文件的路径 . 我有一个脚本,然后查看此文件并执行“从user_supplied_file加载到employeeStatusTable” . 此文件中提到的所有employeeID都将插入此表中,状态为“N” . 真正的问题是用户提供的文件可能包含已存在于表中的employeeId,其状态已更新为“Y”(通过某些其他脚本或作业) . 在这种情况下,现有条目应该被覆盖 . 简而言之,表中的条目应为“empId”,“N” .
有没有办法实现这个?提前致谢 .
1 回答
据我所知,LOAD语句仅限于使用INSERT语句 . 我很确定有很多方法可以做到这一点,我会建议两种方式:
在这两种情况下,仅支持数据库版本> = 11.50并且具有某些限制,例如:
仅当两个表具有1对1关系时,合并才有效
外部表仅限于数据库服务器文件系统,不会访问客户端计算机上的任何内容
建议1
加载到临时表中,然后使用MERGE语句 .
建议2
创建external table到您的TXT文件,然后在需要时使用此表使用MERGE或UPDATE .