問題タブ [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 投票する
1 に答える
23477 参照

sql - 一意のインデックスを追加します。SQLite3

既存のテーブルに一意のフィールドインデックスを追加する必要があります。私はこの行を作りました:

テーブルとフィールドはすでに存在します。エラーは次のとおりです。

クエリエラー:「UNIQUE」の近く:構文エラーステートメントを実行できません

私は何が恋しいですか?SQLite3に特定の要件はありましたか?

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

javascript - オブジェクトのインスタンス化時に一意の ID を設定する (コンストラクターを使用)

Javascript コードに関して解決しなければならない問題があります。オブジェクトをインスタンス化するとき (この場合は新しいメンバーを追加するとき)、メンバーに一意の ID を取得させたいと考えています。以下は、私が望むものの写真を提供するための私のコードの簡略化されたバージョンです。これを行う最善の方法は何ですか?

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

mysql - テーブルの重複エントリを修正

運用サーバーのテーブル (約 35K レコードを保持) の INT(11) 列に、AUTO_INCREMENT を持つ 588 個​​の重複エントリが含まれていることがわかりました。その列には UNIQUE キーがないため、おそらくそれが原因です。

すべての重複エントリに一意の ID を付与し、列に UNIQUE キーを追加して、これが二度と起こらないようにする方法についてのアイデアはありますか?

テーブル スキーマ:

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

mysql - MySQL: Unique Constraint 複数列のパフォーマンスの最適化

複数の質問に対する一意の制約に関する質問がたくさんありますが、特に探しているものと一致するものはありません。これが1つの重複である場合は、お詫び申し上げます。

私はただのテーブルを持っています:tableA_id tableB_id

私の主キーは両方のテーブルの一意の制約であり、両方の列にインデックスがあります。両方とも、それらの重要なテーブルへの主キーでもあります。

tableA の行数が 10,000,000 行で、table B の行数が 2,000,000 行である可能性が高い場合、TableB がこの制約を受ける回数ははるかに少なくなる可能性が高くなります。それは悲しいことですが、TableB を最初の列として配置するように一意の制約を作成しているときに、TableA を検索することが少ないため (そうであればなぜ)、それとも最初に 1 つを検索しないので違いはありませんか?もう一方は、むしろ両方を見て 1 つずつ進みます。

前もって感謝します

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

android - Sqliteで列を一意のインデクサーとして設定する方法

3 つの列 (_id、column1、column2) があり、_id 列は自動インクリメントとして設定されています

データベースにはいくつかの重複レコードがあるため、column1 を一意のインデクサーとして設定して重複レコードを防止したいと考えています。sqlite で列を一意のインデクサーとして設定するにはどうすればよいですか? または、レコードの重複を防ぐにはどうすればよいですか?

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

mongodb - MongoDB の一意のインデックスが機能しない

一意のインデックス制約のために失敗する必要がある単純なコードの一部があります。ただし、一意のインデックスにもかかわらず、両方のオブジェクトがデータベースに追加され、クエリを実行できます。

両方のオブジェクトが保存され、異なる _id が取得されます。

更新。 わかった、どうした。両方のオブジェクトは、データベースに保存した後に独自の ID を取得しますが、実際には 2 番目のオブジェクトは保存されません (指定された ID であってもクエリできません)。

正しい答えを与えてくれたaraqnidのおかげです。残念ながら、投票するのに十分な評価がありません。

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

mysql - 2列のUNIQUEINDEXを持つテーブルにINSERTします

私は単純なtag_mapテーブルを持っています

UNIQUE INDEX投稿に関連付けられたタグのペアが重複しないように追加しました。今、私が新しい腸を追加しようとすると

エラーが発生します

しかし、I SELECTWHERE tag_map_id='16777215'の場合; これは別のタグと投稿に属しています。

どこが間違っていたのですか?

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

ruby-on-rails - Rails: 任意のインデックスで find メソッドを使用する方法

一意の識別子として文字列を持つモデルを作成しました。その文字列にインデックスを追加して一意に設定する移行を作成しました。たとえば、一意の識別子文字列をfindメソッドに渡すだけで、データベースエントリにアクセスするにはどうすればよいですか

現時点では、ActiveRecord::RecordNotFound 例外が発生するだけです...

ID=abc のオブジェクトが見つかりませんでした

...アクセスしようとするとObject.find('abc')

これは私に関係を返すので、このwhere方法は代替手段ではありません。

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

postgresql - PostgreSQL はどのように UNIQUE 制約を適用しますか? どのタイプのインデックスを使用しますか?

実装の詳細であるインデックスの一意性に関するドキュメントを読んだ後、Postgres の一意とインデックスの関係を整理しようとしました。

テーブルに一意の制約を追加するための推奨される方法は、ALTER TABLE ... ADD CONSTRAINT です。一意の制約を強制するためのインデックスの使用は、直接アクセスしてはならない実装の詳細と見なすことができます。ただし、一意の列に手動でインデックスを作成する必要はないことに注意してください。これを行うと、自動作成されたインデックスが複製されるだけです。

したがって、ドキュメントを言葉どおりに解釈して、物事を一意であると宣言し、暗黙的なインデックスを使用します。または、インデックスを作成し、値が一意であるとは想定しません。これは間違いですか? 

unique から取得するインデックスはどのようなものですか? btree のみが一意の制約を受け入れ、unique が暗黙的にインデックスを作成することを考えると、UNIQUE が btree インデックスを作成するのは本当ですか? うっかりハッシュ インデックスで範囲を実行したくありません。 

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

mysql - 共通の FK を持つ 1 つのレコードのみが「プライマリ」フラグを持つことを許可/要求する

まず、これがだましである場合はお詫び申し上げます。

会社のテーブルがあるとします。

...そして連絡先の表:

1 つだけのレコードに各コモンのフラグが設定されている必要がcontactsあるように、テーブルを設定することは可能ですか?is_primarycompany_id

だから私がやろうとした場合:

Tom... ( id = 1) は の主要連絡先として既にフラグが設定されているため、クエリは失敗しますcompany_id = 1。またはさらに良いことに、クエリが成功するようにトリガーを作成することは可能ですが、同じ操作Tomis_primaryフラグがクリアされますか?

company_idテーブルに存在するかどうかをチェックすることはあまり気にしませんcompanies。私の PHP コードは、この段階に到達する前に既にこのチェックを実行していたはずです (ただし、同じ操作でこれを行う方法があれば、それは素晴らしいことだと思います)。 .

最初にこれについて考えたとき、「それは簡単だろう。列company_idis_primary列に一意のインデックスを追加するだけだ」と思ったが、明らかにそれはうまくいかない。 3 番目の連絡先を追加しようとすると失敗します。しかし、私が必要とする最小限の機能を提供する一意のインデックスを構成する方法があると感じずにはいられません。つまり、2 番目の主要な連絡先を追加しようとする試みを拒否したり、主要な連絡先のない会社を離れようとする試みを拒否したりします。

テーブルに FK を使用してテーブルにprimary_contactフィールドを追加するだけでよいことはわかっていますが、面倒です。両方のテーブルが他のテーブルに FK を持つという考えは好きではありません - 両方のテーブルが互いに依存するのではなく、一方のテーブルが他方に依存するべきだと私には思えます。時間が経つにつれて、何かがうまくいかない可能性が高くなると思います。companiescontacts

総括する:

  • 指定された 1 つのレコードだけcompany_idis_primaryフラグが設定されるように連絡先テーブルを制限するにはどうすればよいですか?
  • 互いに FK を持つ 2 つのテーブルが良い/悪い考えであるかどうかについて、誰か考えがありますか?