<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?
如果您想在存在重复记录时不采取任何操作,可以使用 INSERT IGNORE 语法。
这里是完整的语法指南