問題タブ [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.
sql - 2 つの varchar フィールドに大文字と小文字を区別しない一意の制約を作成する
Oracle 10g で、大文字と小文字を区別しない一意の制約を 2 つの varchar フィールドに追加するにはどうすればよいですか? たとえば、次のレコードがすでにテーブルにあるとします。
次の挿入は無効です。
ただし、次の挿入は有効です。
java - JPA2 固有の制約: 本当にフラッシュする必要がありますか?
一意の制約例外をキャッチする必要がある DAO があります。これを行うには、唯一の有効な解決策は、永続化後に EntityManager をフラッシュすることです。そうして初めて、例外を除外する必要がある catch ブロックに入ります。また、DAO メソッドをトランザクション (REQUIRES_NEW) でラップする必要があります。そうしないと、RollBackException が発生します。
私は何か間違ったことをしていますか?
sql - SQL テーブルの正規化: 多対多の関係でレコードの参加を制限することに関する簡単な質問
次のテーブルとリレーションがある場合:
- 製品テーブル
- Price Point テーブル (製品の 1 つ以上の価格)
- バージョン テーブル (同じエリアで販売されている製品のグループ)
特定のバージョンには 1 つの製品価格しか存在できないという制約。制約を反映するテーブルをどのように作成しますか?
制限を説明するために、1 ドル、2 ドル、3 ドルの価格の製品があるとします。A、B、C、D、E、F、G、H、I のメディア ゾーンがあります (それぞれコロンブス OH のような場所を表します)。
A、B、C に存在する場合の製品 A の価格 $1 は、A、B、C に他の価格 ($2、$3) を持つことはできません
バージョン M2M テーブルを PricePoints に変換し、M2M テーブルのすべてのフィールドから PricePoint フィールドを除いた一意のインデックスを作成しますか? (これを入力しながら考えました) 関係を表現するためのより良い方法はありますか?
entity-framework - エンティティデータモデル、一意のインデックス
私のエンティティデータモデルには、主キーとして1つのプロパティがあり、一意の値を持つ別のプロパティを持つエンティティがあるので、他のプロパティに一意のインデックスを作成したいと思います。この状況は、PersonIDフィールドとPersonSSNフィールドを持つPersonエンティティと非常によく似ています。
モデルからデータベースを生成するときに、そのようなインデックスをプロパティに作成する必要があることをデザイナーまたはedmxファイルで指定する方法はありますか?
sql - ビット列によって制御されるUNIQUE制約
私はテーブルを持っています
ペア(FieldID、FormID)は一意である必要がありますが、行が削除されていない場合(isDeleted = 0)のみです。
SQLServer 2008でそのような制約を定義することは可能ですか?(トリガーを使用せずに)
PS設定(FieldID、FormID、isDeleted)を一意にすると、1つの行を削除済みとしてマークする可能性が追加されますが、n行(FieldID、FormIDごと)をisDeleted = 1に設定し、1つだけにする機会が欲しいです。 isDeleted=0の場合
sql - PostgreSQL8.3のnullではなく一意の制約を持つインクリメントフィールド
「position」列を持つ「items」テーブルがあります。positionには、一意でnullではない制約があります。位置xに新しい行を挿入するには、最初に後続のアイテムの位置をインクリメントしてみます。
これにより、一意の制約違反が発生します。
問題は、PostgreSQLが更新を実行する順序にあるようです。PostgreSQL <9.0の固有の制約は延期できず、残念ながら9.0を使用することは現在のところオプションではありません。また、UPDATEステートメントはORDER BY句をサポートしておらず、以下も機能しません(キー違反が重複しています)。
コード内のすべてのアイテムを反復処理する必要のないソリューションを誰かが知っていますか?
sql - LINQ to SQL で一意の制約を適用する方法
LINQ to SQL を使用して 2 つの列に一意の制約を適用したいと考えています。SQL テーブルに制約を構成しましたが、LINQ to SQL でそれを使用する方法はありますか?
両方とも外部キーである 2 つの列に一意性制約が適用されます。
ありがとうございました
編集:非常に具体的な例外がスローされた場合、例外をキャッチできました。別の方法は、更新/挿入を実行する前にテーブルの状態を確認することです。非常に単純なタスクには、すべてが多すぎるように思えます。
.net - EntityFrameworkを使用するときに一意の制約を処理するための最良の方法
Entity Framework 4.0を使用して、一意の列制約を持つテーブルのデータにアクセスしています。制約に違反している場合、予想どおり、SaveChanges()を呼び出すと例外が発生します。私の質問は、そもそも例外がスローされることを許可する必要があるかどうかです。または、重複データの挿入を回避するために選択を行うこともできます(トランザクションが必要になると思います)。
このシナリオで一般的に受け入れられているベストプラクティスは何ですか?
sql-server - 別のSQLテーブルへの外部キー参照としてSQLテーブルの一意制約を追加します
SQL Server 2005 の別の SQL テーブルへの外部キー参照として、SQL テーブルの一意の制約を追加する方法
sql - 再帰的な「ON DUPLICATE KEY UPDATE」
日付ごとに複数の行が存在しないように、日付列に UNIQUE キーを持つデータベース テーブルがあります。データベースに既に存在する日に新しい行を挿入する場合、「空き」日になるまで、後続の連続するすべての日付を 1 日戻します。
これが私が考えたことです:
私の考えでは、ON DUPLICATE KEY UPDATE はテーブルをバブルアップさせ、存在しない日になるまで、すべての日付に 1 日を追加し続けます。
たとえば、テーブルの内容が次のようになっている場合:
…そして、2009 年 7 月 31 日の「日付 7」を挿入します。次のようにします。
しかし、重複キーの更新ではそのようには機能せず、衝突している行のみを更新し、その行が別の行と衝突すると、重複キーエラーで救済されます。
SQL だけでこの効果を達成するスマートな方法はありますか?