問題タブ [unique-constraint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
10752 参照

doctrine - Doctrineで挿入する前に、データベースにエンティティが既に存在するかどうかを確認してください

データベースに既に存在するエンティティを挿入するたびに、フィールドの 1 つに一意の制約があるため、エラーが発生します ( email)。

したがって、既に存在するかどうかを確認したいと思います。そうでない場合は、挿入します。

私のコードは次のようになります。

これを行う簡単な方法はありますか?

0 投票する
3 に答える
10957 参照

oracle - エラーが発生した場合にPL/SQLで行番号、プロシージャ名を見つける方法

D2k 6i フォームを使用していて、格納されたデータベース (oracle9i) プロシージャ ORA-00001:Unique constraint(.) 違反からフォームにエラーが発生しましたが、どのプロシージャから来たのかを追跡できません。誰でもこれに関して私を助けることができますか

0 投票する
4 に答える
150 参照

sql-server - SQL Server: 「ほぼ一意」のインデックス

テーブルでは、5 列のキーに一意の値のみが存在するようにしたいと考えています。

しかし、 EventActionが次の場合にのみ、一意の制約を行間に適用したいINSERT:

可能?

0 投票する
1 に答える
96 参照

ruby-on-rails - アレイで作業しようとすると、なぜアクティブレコードエラーが発生するのですか?

ユーザーモデルには次の関連付けがあります。

user_usersテーブルに次の一意性制約があります。

私のコードでは、ユーザーの友達を取得しています-> friends=user.friends。友達は配列です。

それらすべての友達を持つユーザーを友達配列に追加したいというシナリオがあります。元:

ただし、次のエラーが発生します。

何が得られますか?

0 投票する
2 に答える
15116 参照

java - JPA 2.0 での制約違反の検出

たとえば、EclipseLink 2.0.2で使用される次のエンティティ・クラスを検討してください。ここで、link属性は主キーではありませんが、それでも一意です。

属性の値が重複しているレコードを挿入するとlink、EclipseLink は をスローせずに をスローしEntityExistsExceptionDatabaseException一意の制約に違反したことを説明するメッセージが表示されます。

この例外をキャッチする単純でデータベースに依存しない方法がないため、これはあまり役に立ちません。これに対処するための推奨される方法は何でしょうか?

私が検討したいくつかのことは次のとおりです。

  • のエラー コードを確認していますDatabaseException- ただし、このエラー コードはデータベースのネイティブ エラー コードではないかと思います。
  • Profile事前に特定の値を持つa の存在を確認するlink- これは明らかに膨大な量の余分なクエリをもたらします。
0 投票する
6 に答える
9850 参照

mysql - JPAで作成されていない一意の制約

次のエンティティ Bean を作成し、2 つの列を一意として指定しました。今私の問題は、一意の制約なしでテーブルが作成され、ログにエラーがないことです。誰にもアイデアはありますか?

0 投票する
5 に答える
208 参照

database - 10列を超える一意の制約

10個を超える入力変数を持つ時系列シミュレーションモデルがあります。個別のシミュレーションインスタンスの数は100万を超え、各シミュレーションインスタンスは毎日いくつかの出力行を生成します。

シミュレーション結果をリレーショナルデータベースに保存するために、私はこのようなテーブルを設計しました。

テーブルSimulationModelを作成します(

simul_id整数主キー、

input0文字列/数値、

input1文字列/数値、

...)

テーブルSimulationOutputを作成します(

dt DateTime主キー、

simul_id整数主キー、

output0数値、

...)

各モデルをユニークにするために、以下のような方法を検討しています。

  1. SimulationModelテーブルのすべての入力列に一意性制約を設定します

  2. SimulationModelテーブルを再設計して、入力列を2〜3列にグループ化し、これらのグループ化された列に一意の制約を設定します。(「input0_input1_input2」のような長い文字列値を作成することによって)

  3. サーバー側の制約を忘れて、アプリケーション側で仕事をしてください。

これらのオプションについてどう思いますか?

数百万行の10列以上で一意のインデックスを使用しても問題はありませんか?

他に推奨する方法はありますか?

(私はpostgresqlを使用するかもしれません)

0 投票する
1 に答える
4292 参照

java - EntityExistsExceptionを適切に処理する方法は?

QuestionとFavoritesCounterの2つのエンティティがあります。質問が初めてお気に入りに追加されるときに、FavoritesCounterを作成する必要があります。

2人のユーザーがお気に入りに質問を同時に追加しようとするユースケースを考えてみましょう。これにより、2番目のユーザーが呼び出されたEntityExistsExceptionときに発生します。entityManager.persist(counter)

ただし、以下のコードは機能しません。これは、EntityExistsExceptionがスローされると、コンテナがトランザクションをロールバックとしてのみマークし、戻りの試行getFavoritesCounter(question)が失敗するためです。javax.resource.ResourceException: Transaction is not active

質問

FavoriteCounter

作成済みのエンティティを後で返すための最良の方法は何EntityExistsExceptionですか?

0 投票する
12 に答える
288027 参照

java - Java の @UniqueConstraint アノテーション

Java Bean があります。ここで、フィールドが一意であることを確認したいと思います。

次のコードを使用しています。

しかし、私はいくつかのエラーが発生しています:

一意の制約を使用する適切な方法は何ですか?

注:私はプレイ フレームワークを使用しています。

0 投票する
2 に答える
1133 参照

.net - AutoIncrement 列を指定した DataTable.Rows.Add の ConstraintException

MySQL サーバー側と ADO.NET スキーマ側 (XML スキーマ ファイルからロード) の両方で AutoIncrement が有効になっている ID 列を持ついくつかの DataTables があります。行を挿入するときにこれらの ID を気にする必要がないようにしたいと思います。それらの唯一の用途はテーブルの主キーを持つことだからです。外部キーの参照はありません。ただし、新しい行が追加される場合、DataTable には既に行が含まれています。つまり、ID が 1 から始まる行が DataTable に既に存在します。

ID 列の既定の AutoIncrementSeed 値は -1 で、AutoIncrementStep 値は 1 です (Visual Studio によって提供される既定値のままです)。dataTable.NewRow() で作成すると、ID -1 と 0 が取得されるため、一度に 2 つの新しい行を挿入するだけであれば、すべて問題ないようです。しかし、3 番目の行を追加する場合は、ID を取得します。 NewRow() によって 1 が割り当てられます。その後、ID = 1 の行が既に存在するため、dataTable.Rows.Add(...) を使用して新しい行を挿入しようとすると ConstraintException がスローされます。

ADO.NETスキーマのAutoIncrementのものを無効にすることは解決策ではないと思います.Rows.Add()で行を追加する前に、IDが一意であることを確認する必要があるためです。

この問題の簡単でエレガントな解決策は何ですか? 今のところ、これが非常に珍しい作業だとは想像できません。

ありがとうございました!