問題タブ [unique-index]

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 投票する
2 に答える
215 参照

mysql - 値が結合されるように、列のペアにインデックスを設定するにはどうすればよいですか?

id、external_id、country_code 列を持つテーブルがあります。データベースに課したいルールが 2 つあります。

  • 各外部 ID は、国コードごとに 1 回だけ表示できます
  • 各 ID は、null 以外の外部 ID を最大で 1 つだけ表示できます。その逆も同様です。

最初のルールは簡単です。一意の複数列インデックスを external_id と country_code に追加します。2番目を課すにはどうすればよいですか?

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

php - MongoDB:ensureIndexがシングルキーとコンポジットキーの両方で機能しない

ローカルにセットアップされたMongoDBコレクションにバルクデータを追加しようとしている時間から、1つまたは複数のキーの一意のインデックスを除いてすべてが設定されます:(

私はこれを使用しました:

次に、これ(なんらかの理由で、複数のキーのインデックスが機能していないと思います)

上記の行を使用した後、phpスクリプトから(insertとbatchInsertの両方を介して)何百万もの行を挿入しようとしましたが、重複するユーザーIDが存在するたびに:'(これについて教えてください:(

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

c# - MVC2固有のインデックス検証

モデル上で一意である必要があるプロパティを検証する方法はありますか?たとえば、ユーザーは「製品」を作成および編集できますが、既存のProductCodeを使用して製品を作成したり、製品を編集してProductCodeを既存のコードに変更したりすることはできません。

カスタム属性を使用してみました。

このソリューションでカバーできるのは、コードがDBに既に存在する場合に、ユーザーが製品を挿入/更新できないようにすることだけです。これにより、ユーザーは既存の商品を編集できなくなります。送信すると、コードが既に存在していることがわかり(編集しようとしている商品のコードになります)、falseが返されます。

MVC 2で一意のインデックスを処理する方法はありませんか。何時間も検索し、stackoverflowに関する他のトピックも見つけましたが、固溶体はありません。

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

postgresql - INDEX と UNIQUE INDEX の両方を指定する必要がありますか?

私の PostgreSQL テーブルの 1 つに、テーブル内で一意であると定義される 2 つのフィールドのセットがありますが、データを選択するときに両方とも一緒に使用されます。この場合、UNIQUE INDEX を定義するだけでよいですか、それとも UNIQUE INDEX に加えて INDEX を指定する必要がありますか?

これ?

それともこれ?

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

mysql - 複数のフィールドによる MySQL の一意のインデックス

DB には特別な種類のテーブルがあり、その変更の履歴をそれ自体に保存します。いわゆる「セルフアーカイブ」テーブル:

加入者の「カバレッジ」を保存します。フィールド「現在」は、これが現在/元のレコード (「C」) であるか履歴レコード (「H」) であるかを示します。

特定の加入者に対して現在の「C」カバレッジを 1 つだけ持つことができますが、2 つのフィールド (*subscriber_id と current*) を持つ一意のインデックスを作成することはできません。 " レコード - 変更履歴。

したがって、インデックスは現在の == 'C'および任意のsubscriber_idに対してのみ一意である必要があります。

これは、「マテリアライズド ビュー」のようなものを使用して Oracle DB で実行できます。この場合、current = 'C' のレコードのみを含むマテリアライズド ビューを作成し、*subscriber_id、current* の 2 つのフィールドで一意のインデックスを作成できます。

問題は、MySQL でこれを行うにはどうすればよいかということです。

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

asp.net - データベースの主キーを使用せずに、ユーザーに一意のIDを与えるにはどうすればよいですか?

10,000人のユーザーがいて、主キーが1から10,000までの一意のIDである場合、元の主キーを推測できないように、すべてのユーザーに一意のIDを与える方法はありますか?

たとえば、Facebookプロファイルなどへのリンクはhttp://site.com/profile?id=293852になります。

そこにあるIDは、データベース内のユーザーの主キーと同じである可能性がありますか?ランダムに生成されたものは一意である必要があるため、2つの無関係な一意のID列を作成する方法を考えるのに苦労しています。数字だけを使ってGUIDを作成できるとしたら、長さが長すぎると思います。

そしてアイデア?

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

database - 一意のインデックスに対して一意でないエントリがあるのはなぜですか? (PostgreSQL 9.0)

関数に基づいて、postgresql 9.0 db に一意のインデックスがあります。私が試した手動テストではまだ失敗していませんが、クエリを実行するとデータベースに重複が見られます。

これをチェックしてください:

これがどのように起こっているかについてのアイデアはありますか?NULL が一意ではないことはわかっています。それは問題ではなく、他の 38 行です。

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

mysql - MyISAM の一意のキーが 64 バイトで切り捨てられ、衝突が発生する

URL を一意のキーとして格納する MySQL テーブルがあります。キー自体が任意の URL の最初の 64 バイト (または必要に応じてラテン 1 照合された文字) にすぎないように見えるため、キーで衝突が発生し始めています。そのため、URL が 64 文字を超えていて、既に同様の URL を取得している場合、エラーがスローされます。

例えば:

このエラーをスローします:

MyISAM の鍵の長さは 1000 バイトであるはずではありませんか?

編集:次のように見える CREATE TABLE STATUS 呼び出しにリストされているプレフィックス長がないようです:

次のように 256 に設定しようとしました。

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

フォールバックは、MySQL Workbench を介して ALTER TABLE を実行したためだと思います。

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

sql-server - URL 列での主キーまたは一意のインデックスの作成

URL を保持するために使用される NVARCHAR(4000) 列に主キーまたは一意のインデックスを作成することは可能ですか? SQL 2008 では、一意のインデックスに 900 バイトの制限があるようです。

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

sql-server - 非正規化された多対多マッピング

SQL Server 2008 R2には、次の構造のテーブルがあります

これは、システム( "Left")からRight1-6に移動し、別のシステム( "Right")に移動するLeft1とLeft2をマップするために使用されます。

左の列が一意であることを確認する必要があります。これは、一意のインデックスを使用して行ったものであり、左右の組み合わせも一意であることを確認する必要があります。

サポートされている最大列サイズは900バイトであるため、ここではインデックスを使用できません。テーブルをLeft、Right、Left2Rightに分割することは避ける必要があります。これは、非常に面倒で、ユースケースでエラーが発生しやすいためです。

組み合わせの独自性を強制する正しい方法は何ですか?


私の要件は次のとおりです。

  • テーブル全体で、Left1とLeft2に同じ値の行があってはなりません(解決済み)
  • テーブル全体で、Left1、Left2、Right1、Right2、Right3、Right4、Right5、Right6に同じ値の行があってはなりません(ここでヘルプが必要です)