如何插入忽略写数据库操作符....?

tmyerstmyers 成员职位:21贡献我
编辑2018年12月 帮助

嗨。我使用写数据库操作符附加行到MySQL表。我在目标表中有一个由2列组成的惟一索引。当我的示例集包含包含表中已经存在的一对值的行时,Write Database就会出错并停止。我想操作符忽略这样的错误,并继续追加所有这些值的对不已经存在的表中的行(即行为像INSERT ignore语句)。

我怎样才能运行这个操作符,使它忽略这样的错误,只追加“新”值对?

提前感谢您的建议,

蒂姆

标记:

最佳答案

  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:841独角兽
    解决方案接受

    你好,

    如果您愿意更新现有值(基于惟一索引),则可以使用Update Database操作符。它将搜索现有记录(您需要选择包含索引值的两列),如果没有找到键,则插入记录,否则进行更新。

    如果您真的只想插入新数据,您可以从表(读数据库)中获取现有的键,执行Join操作,例如用于标识现有记录的Left,并仅为写数据库保留新记录。

    问候,

    Balazs

答案

  • tmyerstmyers 成员职位:21贡献我

    谢谢Balazs。我很害怕。我要读的表格有30M行:人舌:

    Reagrds,

    蒂姆

  • BalazsBaranyBalazsBarany 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家职位:841独角兽

    我有时会使用附加的“分期”表来解决这个问题,它具有与主表相同的结构。

    将内容添加到staging表中,然后使用Execute SQL只选择新行(例如LEFT OUTER JOIN),将它们放入主表中,并截断staging表。

    这将扩展到庞大的示例集,因为数据库在内部完成大部分工作。

登录注册置评。