Maison  >  Questions et réponses  >  le corps du texte

Insérer des données si et seulement s'il n'y a pas de données en double dans la base de données 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>

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 ?

P粉883278265P粉883278265402 Il y a quelques jours469

répondre à tous(1)je répondrai

  • P粉216807924

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

    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

    répondre
    0
  • Annulerrépondre