問題タブ [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.
mysql - Ruby onRailsでMySQLからの重複レコードエラーを処理するにはどうすればよいですか?
データベースの複数のフィールドに一意のインデックスがあります。したがって、重複するレコードに対してsaveを呼び出そうとすると、ActiveRecord :: StatementInvalidが発生し、mysqlエラーが表示されます。一意の制約を作成するか、これが発生したときに関連するエラーメッセージを返すようにすることで、レール内でこれを処理する方法はありますか?
ここにトレースがあります:
mysql - Ruby on Rails 3でMySQLテーブルの列に「一意の」制約を定義する方法は?
1 つの列を持つ単純な MySQL テーブルがあります: name
.
この列に一意の制約を定義したいと思います。
できます:
ただし、データベース レベルではなく、アプリケーション レベルでのみ機能します。
あなたは何を提案しますか?
entity-framework - Entity Framework Code First の一意の制約
質問
流暢な構文または属性を使用して、プロパティに一意の制約を定義することは可能ですか? そうでない場合、回避策は何ですか?
主キーを持つユーザー クラスがありますが、電子メール アドレスも一意であることを確認したいと考えています。データベースを直接編集せずにこれは可能ですか?
解決策(マットの回答に基づく)
c# - ADO.NETDataSet-異なるテーブルの列にUniqueConstraintがあります
Visual Studio2008の.NET3.5のC#でプログラムを作成しています。2つのDataTable、AとBを持つDataSetがあります。テーブルAにはDataColumn Y、テーブルBには列Z、さらに両方のテーブルにさらに列があります。列YとZの両方が、一意の自動インクリメント列に設定されています。
YとZも2つの間でユニークにしたいと思います。のように、テーブルAのY列に3が含まれる行が既にあり、テーブルBに新しい行を作成していて、その新しい行のZ列に3を配置したい場合は、代わりに3をスキップします。そして4を入れます。
私はそれがうまくいくように見える何かを試しました:
しかし、アプリケーションを実行してそのコードに到達すると、最初の行に次のエラーが表示されます。
System.Data.InvalidConstraintExceptionは未処理でした
Message="異なるテーブルに属する列からキーを作成できません。"
Source = "System.Data"
両方のテーブルに同じUniqueConstraintを追加する理由は、それをアクティブにするために他にどこに配置するかがよくわからないためです。Y列とZ列を除いて、テーブルは互いにほとんど関係がないため、テーブルを1つにまとめたくありません。
誰かがこれを行う方法を知っていますか?MSDNのドキュメントには複数のテーブルについては記載されておらず、他の誰もこれを試したことがないようです。
私は問題を終えました。私のプログラムでは、処理しているテーブルを追跡するために、すでにいくつかの外部キーチェックを使用していました。これからは別の方法で進めるほうが簡単かもしれないと思っていましたが、現在の手法を維持することにしました(プログラムの他のコンポーネントに詳細なID情報を入れるなど、必要に応じて少し拡張します)。うまくいくことがわかった。
私がやったことは、私がここに投稿した私の質問を本当に解決しません。ここで回答を得ることを望んでいるGoogle社員に謝罪します。
python - Django Unique Together (外部キーあり)
unique_together
特定のルールを適用するために のメタ オプションを使用したい状況があります。これが中間モデルです。
ここにユーザープロファイルがあります:
ありがとう。
hibernate - 例外: データベースの状態をセッションと同期できませんでした
spring および hibernate 3.0 で開発され、apache tomcat 6 にデプロイされた Web アプリケーションがあります。
このエラーは、本番環境でのみ再現可能です。同じDBを指すローカル環境で同じコードが動作しています。ロガーステートメントを追加しようとしたところ、シーケンスジェネレーターが毎回同じ値、つまり「0」を生成していることがわかりました。あなたの助けを待っています。
-- Sun2
返信ありがとうございます。はい、例外は明らかに制約に違反していると言っています。CARS.XAK1CAR_ATTRIBUTE は結合キーであり、一意である必要があります。すべてのデータを (ロガーによって) 検証しましたが、この制約に違反する可能性のあるデータは見つかりませんでした。さらに、この制約に違反している場合、同じ DB を指すローカル環境では機能しません。これはサーバー固有のものですか?問題の解決に役立つ場合は、挿入しようとしているテーブル DDL やデータなどの詳細を提供できます。――サントッシュ
postgresql - INDEX と UNIQUE INDEX の両方を指定する必要がありますか?
私の PostgreSQL テーブルの 1 つに、テーブル内で一意であると定義される 2 つのフィールドのセットがありますが、データを選択するときに両方とも一緒に使用されます。この場合、UNIQUE INDEX を定義するだけでよいですか、それとも UNIQUE INDEX に加えて INDEX を指定する必要がありますか?
これ?
それともこれ?
java - Hibernate JPA2 で一意の制約を使用する
休止状態の POJO に独自の制約を実装するにはどうすればよいですか? データベースには何も含まれていないと仮定します。
注釈で一意の属性を見た@Column()
ことがありますが、機能させることができませんでしたか?
この制約を複数の列に適用したい場合はどうすればよいですか?
postgresql - postgre で一意の違反に対して削除または更新を実行する
Unique_violation 例外で、例外を発生させた行を更新または削除する方法
テーブルコードと挿入
関数
mysql - 複数のフィールドによる MySQL の一意のインデックス
DB には特別な種類のテーブルがあり、その変更の履歴をそれ自体に保存します。いわゆる「セルフアーカイブ」テーブル:
加入者の「カバレッジ」を保存します。フィールド「現在」は、これが現在/元のレコード (「C」) であるか履歴レコード (「H」) であるかを示します。
特定の加入者に対して現在の「C」カバレッジを 1 つだけ持つことができますが、2 つのフィールド (*subscriber_id と current*) を持つ一意のインデックスを作成することはできません。 " レコード - 変更履歴。
したがって、インデックスは現在の == 'C'および任意のsubscriber_idに対してのみ一意である必要があります。
これは、「マテリアライズド ビュー」のようなものを使用して Oracle DB で実行できます。この場合、current = 'C' のレコードのみを含むマテリアライズド ビューを作成し、*subscriber_id、current* の 2 つのフィールドで一意のインデックスを作成できます。
問題は、MySQL でこれを行うにはどうすればよいかということです。