Heim  >  Fragen und Antworten  >  Hauptteil

Fügen Sie Daten genau dann ein, wenn keine doppelten Daten in der MySQL-Datenbank vorhanden sind

<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>

Ich versuche, Daten in die MySQL-Datenbank einzufügen. Wenn „transactionDate“, „transactionNumber“ und „uid“ in den Parametern auch mit „market_day“, „order_number“ und „uid“ in der Tabellenspalte „stock_order_abusing“ übereinstimmen, erfolgt keine Einfügung oder die Einfügung sollte ignoriert werden. Es gibt keinen pk (Primärschlüssel) zum Vergleichen. Alle Methoden in Google sagen mir, dass es einen Primärschlüssel geben sollte, um doppelte Einfügungen zu verhindern. Gibt es eine Möglichkeit, dieses Problem zu lösen?

P粉883278265P粉883278265402 Tage vor470

Antworte allen(1)Ich werde antworten

  • P粉216807924

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

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

    这里是完整的语法指南

    Antwort
    0
  • StornierenAntwort