首页  >  问答  >  正文

插入数据当且仅当 mysql 数据库中没有重复数据

<insert id="insertStockOrderAbusingList" parameterType="java.util.List">
    INSERT IGNORE INTO iruda_trade.stock_order_abusing (
        market_day,
        uid,
        stock_account_id,
        order_number,
        symbol,
        conclusion_quantity,
        order_type,
        created_at
    ) VALUES
    <foreach collection="list" item="item" index="index" separator=",">
    (
            #{item.transactionDate},
            #{item.uid},
            #{item.stockAccountId},
            #{item.transactionNumber},
            #{item.symbol},
            #{item.filledVolume},
            #{item.transactionType},
            #{item.clientTimeStamp}
     )
     </foreach>
</insert>

我正在尝试将数据插入 mySQL DB 中。如果参数中的 transactionDate、transactionNumber 和 uid 同时与 stock_order_abusing 表列中的 market_day、order_number、uid 相同,则不会有插入或应忽略插入。没有要比较的 pk(主键)。谷歌中的所有方法都告诉我应该有主键以防止重复插入。有什么办法可以解决这个问题吗?

P粉883278265P粉883278265402 天前468

全部回复(1)我来回复

  • P粉216807924

    P粉2168079242023-09-14 13:57:28

    如果您想在存在重复记录时不采取任何操作,可以使用 INSERT IGNORE 语法。

    这里是完整的语法指南

    回复
    0
  • 取消回复