問題タブ [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.
sql-server - 一意のインデックス、varchar 列、および (空白) スペースの動作
Microsoft SQL Server 2008 R2 (最新のサービス パック/パッチを適用) を使用しており、データベースの照合順序は SQL_Latin1_General_CP1_CI_AS です。
次のコード:
次の結果が生成されます。
(1 行が影響を受けます)
メッセージ 2601、レベル 14、状態 1、行 8
一意のインデックス 'UniqueIndex' を持つオブジェクト 'dbo.Test' に重複するキー行を挿入することはできません。重複キーの値は (sample ) です。
ステートメントは終了されました。
‐‐‐‐‐‐‐‐‐‐‐‐</p>
>サンプル<
(1 行が影響を受けます)
私の質問は次のとおりです。
- インデックスは末尾のスペースを格納できないと思います。この動作を指定/定義する公式ドキュメントを教えてもらえますか?
- この動作を変更する設定はありますか。つまり、'sample' と 'sample' を 2 つの異なる値 (ちなみに) として認識させて、両方をインデックスに含めることができるようにします。
- いったいなぜ SELECT が行を返すのでしょうか? インデックスの一意性を削除すると、両方の INSERT が正常に実行され、SELECT が 2 行を返すため、SQL Server は WHERE 句のスペースを使用して非常に面白い/巧妙なことをしているに違いありません。
正しい方向へのヘルプ/ポインタをいただければ幸いです。ありがとう。
mongodb - モンゴコレクションのセットとしての埋め込み配列(数学的な意味で)
コレクションに入れているオブジェクトの「スキーマ」は、次のようになります。
ただし、子がセットとして扱われるようにしたかったのです。上記の例では、「Suraj」が配列に2回表示されるため、Mongoがレコードを受け入れないようにしました。
名前と子に対して一意のインデックスを作成してみました
ただし、これが行うことは、任意の子名+フォーク名に対してグローバルに一意のインデックスを作成することです。つまり、名前に一意のインデックスがない場合は、次のことができます。
p + c1、p + c2、p+c3は異なるためです。以下を挿入しようとした場合:
その後、私は取得します
https://stackoverflow.com/questions/9640233/unique-array-values-in-mongooseのように、挿入中にチェックを行わずにこれを実現する方法はあり ますか?
sql - 複数の列の一意のインデックス キー
SQL Server を使用してテーブルに一意のインデックス キーを定義する必要があります。
例えば:
では、上の表の4番目のIDのような間違ったデータを一意のインデックスキーを使用して挿入できないようにするにはどうすればよいでしょうか?
mongodb - mongoDB の一意のインデックスが機能しない
URL でインデックスを作成したドキュメントがたくさんあります。このようにpymongoからURLにインデックスを作成しました
それでも、URLが重複しているドキュメントを挿入できます。
インデックスが実際に存在するかどうかをmongoシェルから確認したところ、これが表示されました
ドキュメントを挿入した瞬間に一意性をチェックしないという設定background=True
もあるのですか?url
なぜ一意性が機能しないのか、私は完全に混乱していますか?
mysql - MySQL の一意のキーが失敗するのはなぜですか?
エラー: キー「uneek」のエントリ「2147483647-1」が重複しています
私の MLSNUMBER の UNIQUE キーは、2 つの挿入を区別する前に数値全体を解析していないようです。
どちらも 5030011 で始まります...
キーを作成する方法は次のとおりです。
ADD UNIQUE uneek
( MLSNUMBER
, POSITION
)
最初の 7 桁の代わりに 10 桁全体を受け入れるように、このキーを作成する方法はありますか?
前もって感謝します!
mapping - 一意の番号をインデックスにマッピングする
一意の番号 (105、342、432、34 など) のリストがあり、それらをインデックス (0、1、2、3 など) にマップしたいとします。これを行う一般的な方法はありますか?そうでない場合は、リスト内のすべての数値を事前に知っていて、それらの値をハードコーディングできると想定してください。それが役に立たない場合、別の制限要因は、数字が「ほぼ連続」している可能性があります. これは、それらの大部分が連続していることを意味しますが、ギャップが存在する可能性があります (事前にわかっていることです)。
mysql - MySQLUNIQUEおよびINDEXは列で使用されます
「ユーザー名」という列のクイックルックアップと一意性のためのインデックスを追加したいと思います。UNIQUE
またはを選択するオプションが表示されますINDEX
。両方を作成する必要がありますか、それともUNIQUEを使用する必要がありますか?
私は主キーとしてユーザー名を使用していません。
mysql - 一意のインデックスにない列で MySQL テーブルを分割する方法
簡単な商品表を作ってみましょう。各製品には固有の ID とカテゴリがあります。ユーザーはカテゴリ別に検索することが多いので、製品をカテゴリ別に分割したいと考えています。1 つのパーティション内の各カテゴリ
どうすればいいのですか?もちろん、ID 列に主キーがあり、ID が一意である必要があるためです。各カテゴリで一意ではありません。
ただし、パーティショニングには、「テーブルのすべての一意のキーは、テーブルのパーティション式のすべての列を使用する必要がある」という制限があります。
さて、これではパーティショニングが少し役に立たなくなりませんか? または、何か不足していますか?私は何をすべきか?
http://dev.mysql.com/doc/refman/5.1/en/partitioning-limitations-partitioning-keys-unique-keys.html
c# - linq-sqlに一意のインデックスを持つ複数のレコードテーブルを挿入するときのSqlException
ItemID
PK列と列に一意のインデックスを持つSQLテーブルがありますValue
。
linq-sqlを使用して、テーブルに複数のレコード(バッチ挿入/更新)を挿入しています。レコードを挿入する前に「存在する」チェックを行います。
リストに同じ値がある場合、一意のインデックスが原因で以下の例外が発生します。Item
テーブルにレコードがありません。
例外メッセージ:
一意のインデックス「IDX_Item_Value_U_NC」を持つオブジェクト「dbo.Item」に重複するキー行を挿入できません。
ステートメントは終了されました。
これを回避するにはどうすればよいですか?
編集:単一の挿入を実行できないためdb.SubmitChanges()
、forループ内で呼び出しを移動できません。
EDIT2:これまでに投稿された回答は、linq-sql内の方法ではなく、データの修正を扱っています。intのリストを使用した簡単な例を示しました。しかし実際には、挿入するオブジェクトグラフのリストがあり、すべてのアイテムが挿入/更新のために複数のテーブルにヒットします。回答として投稿したlinq(、、など)を使用する方法をDataContext
見つけましたChangeSet
。DataContext.GetChangeSet().Deletes
DataContext.GetChangeSet().Inserts
mongodb - MongoDBのユニークインデックスのメリット
Mongoのドキュメントを検索しようとしましたが、一意のインデックスに対するクエリが非一意のインデックスに対するクエリよりも高速になるかどうかについての詳細を実際に見つけることができません (同じデータが与えられた場合)
したがって、ユニークインデックスは選択性が高く、パフォーマンスが優れていることがわかります。しかし、連結が一意である 2 つのフィールドがある場合、一意でない複合インデックスは、一意の複合インデックスよりもパフォーマンスが低下しますか?
一意性を検証する必要があるため、一意のインデックスによって挿入が遅くなる可能性があると想定しています。しかし、一意のインデックスによる読み取りパフォーマンスの向上は、本当に価値があるのでしょうか?