sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008:存在しない場合は挿入し、一意の列を維持します

    索引がないのはおかしいです。

    これは役に立ちますが、インデックス キーの長さは 900 バイトしかありません。

    ただし、1 番目の EXISTS の後、1 番目の INSERT の前に 2 番目の EXISTS が実行される可能性があるため、既に重複している可能性があります。

    インデックスの作成によって通知され、その後これを防ぐことができます。

    ただし、負荷が高いとエラーが発生する可能性があります。

    高い挿入数と低い重複数に対する私のお気に入りのアプローチは、JFDI パターンです。高い並行性

    BEGIN TRY
       INSERT etc
    END TRY
    BEGIN CATCH
        IF ERROR_NUMBER() <> 2627
          RAISERROR etc
    END CATCH
      


    1. MySQL行からのデータの乗算

    2. Neo4j-Cypherを使用してリレーションシップを削除する

    3. MySQLで年齢を計算する(InnoDb)

    4. リスト<製品>をデータベースに挿入する方法