ScalaプロジェクトでSlickを使用しています。 Upsert操作(Insert/Update)が必要なモジュールがあります。私たちが知っている方法の1つは、単にSQL文を使用してそれを行うことですが、今のところSlickを使用して代わりにそれを使用したいと考えています。SlickのInsertOrUpdate - プライマリキーを使用しない場合
私たちが使用するSlickのバージョンはInsertOrUpdate()操作をサポートしているので、これを使用します。ここに問題があります: -
テーブルには1つの主キーがあり、これは自動インクリメントに設定されているインデックスです。そして、私たちがしたいupsert操作は、ユニークであることが予想されるが、データベース内で一意または主キーとしてマークされていないトランザクションIDにあります。
このような状況を処理するにはどうすればよいですか?私は手動でテーブルをチェックしてからUpsertを実装しようとしましたが、挿入/更新しましたが、多くのリクエストが1秒ごとに到着し、結果の約1%が2個挿入されている環境では失敗しています。
この純粋なSQLソリューションとは何ですか? – michaJlS