<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>
J'essaie d'insérer des données dans mySQL DB. Si les paramètres transactionDate, transactionNumber et uid dans les paramètres sont également identiques aux valeurs market_day, order_number et uid dans la colonne de la table stock_order_abusing, alors il n'y aura pas d'insertion ou l'insertion doit être ignorée. Il n'y a pas de pk (clé primaire) à comparer. Toutes les méthodes de Google me disent qu'il devrait y avoir une clé primaire pour empêcher l'insertion en double. Existe-t-il un moyen de résoudre ce problème ?
Si vous ne souhaitez effectuer aucune action lorsqu'il existe des enregistrements en double, vous pouvez utiliser la syntaxe INSERT IGNORE.
Voici le guide de grammaire complet