問題タブ [unique]
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.
c++ - 12 桁の一意の ID - コードの信頼性
1 日 (24 時間) 固有のままになる番号が必要でした。以下は私が思いついたコードです。その誤謬/考えられるリスクについて疑問に思っていました。これにより、少なくとも 1 日は 12 桁の一意の番号が保証されると「信じています」。
ロジックは、現在の日付/時刻 (hhmmssmmm) を取得し、クエリ パフォーマンス カウンターの結果の最初の 4 バイトを連結することです。
以下は私が得る出力です:
ユニーク:[125907 462224] ユニーク:[125907 462225] ユニーク:[125907 462226] ユニーク:[125907 462227] ユニーク:[125907 462228] ユニーク:[125907 462230] ユニーク:[125907 462231] ユニーク7:[12623] [125907 462233] ユニーク:[125907 462234] ユニーク:[125907 462235] ユニーク:[125907 462237] ユニーク:[125907 462238] ユニーク:[125907 462239] ユニーク:[125907 462240] ユニーク:[125907 90215] 462243] ユニーク:[125907 462244] ユニーク:[125907 462245] ユニーク:[125907 462246] ユニーク:[125907 462247] ユニーク:[125907 462248] ユニーク:[125907 462249] ユニーク:[125907 462255]ユニーク:[125907 462253] ユニーク:[125907 462254] ユニーク:[125907 462255] ユニーク:[125907 462256] ユニーク:[125907 462257] ユニーク:[125907 462258] ミリ秒変更、46 ユニーク:[125907 622215]9 622262] ユニーク:[125907 622263] ユニーク:[125907 622264] ユニーク:[125907 622265] ユニーク:[125907 622267] 固有:[125907 622268] 固有:[125907 622269] 固有:[125907 622270] 固有:[125907 622271] 固有:[125907 622273] 固有:[125907 622274] 固有:[125907 622274] 固有:[125907] 6ユニーク:[125907 622276] ユニーク:[125907 622278] ユニーク:[125907 622279] ユニーク:[125907 622281] ユニーク:[125907 622282] ユニーク:[125907 622283] ユニーク:[125907 622284]ユニーク:[125907 622286] ユニーク:[125907 622288] ユニーク:[125907 622289] ユニーク:[125907 622290] ユニーク:[125907 622291] ユニーク:[125907 622292] ユニーク:[125907 622293] ユニーク7:[122595] [125907 622296] ユニーク:[125907 622297] ユニーク:[125907 622298] ユニーク:[125907 622299] ユニーク:[125907 622300] ユニーク:[125907 622301] ユニーク:[125907 622302] ユニーク:[125907 622307] 622305] 固有:[125907 622306] ミリ秒変更、62 固有:[125907 782308] 固有:[125907 782310] ユニーク:[125907 782311] ユニーク:[125907 782312] ユニーク:[125907 782313] ユニーク:[125907 782314] ユニーク:[125907 782316] ユニーク:[125907 782317] ユニーク:[125907 782317] 782319] Millisecond changed, 125 Unique:[1259071402495] Unique:[1259071402497] Unique:[1259071402498] Unique:[1259071402499] Unique:[1259071402500] Unique:[1259071402502] Unique:[1259071402503] Unique:[1259071402504] Unique:[1259071402505 ] ユニーク:[1259071402507][1259071402504] ユニーク:[1259071402505] ユニーク:[1259071402507][1259071402504] ユニーク:[1259071402505] ユニーク:[1259071402507]
現在、生成された ID をリストに保持し、新しく生成された ID をリスト内の既存のものと比較することを考えています。リストに既に存在する場合は、確かに番号をスキップして別の番号を生成できますが、確かにそして明らかにこのロジックは失敗します。
コメント/提案/更新/などをいただければ幸いです。
ありがとうJT。
sql-server - SQL Server の IGNORE_DUP_KEY オプション
MSDN と Google でかなりの検索を行いましたが、IGNORE_DUP_KEY オプションの説明は非常に限られているようです。
私の混乱、
IGNORE_DUP_KEY オプションは列のオプションですか? テーブル用?いくつかの列の?インデックスの場合 (インデックスを一意にする)?
IGNORE_DUP_KEY を Yes に設定すると、(一括挿入 WriteToServer ADO.Net 関数を使用して) レコードのバッチを重複キーと共に挿入する場合 (たとえば、データベースに既に存在するいくつかの値を挿入する場合)、SQL Server はエラーをスローしません。バッチ ジョブは正常に完了しますが、重複した行は挿入されません。他のすべての行が挿入され、SQL Server はそれをジョブの成功として扱います。私の理解は正しいですか?
前もって感謝します、ジョージ
algorithm - ファイル名を衝突させずに自動生成
私は「ファイル共有ホスティング」を書いています。アップロード時にすべてのファイルの名前を一意の名前に変更し、データベース上の名前を何らかの方法で追跡したいと考えています。2つ以上のファイルに同じ名前を付けたくないので(これは確かに不可能です)、キーまたは何かに基づいてランダムな名前を生成するアルゴリズムを探しています。
さらに、名前を生成してデータベースを検索して、ファイルが既に存在するかどうかを確認したくありません。生成されたファイル名がアプリケーションによって以前に作成されたことがないことを 100% または 99% 確認したいと考えています。
そのようなアプリケーションを作成する方法はありますか?
sql - 一意の列値を持つSQLクエリ
私の目標は、クエリを作成することです。A、B、C の 3 つのテーブルがあります。テーブルは、A.bID = B.bID、B.cID = C.cID のように記述されています。これにより、基本的に、レコードを a から b にリンクし、b レコードを c からのレコードにリンクするクエリを作成できます。これまでのところ、単純なクエリです。
私の問題は何ですか...クエリに含まれる列の1つ(C.col3と呼びましょう)には一意の値が必要です。この列の値はクエリ結果に 1 回しか表示されませんが、他のテーブルの他の列にはこの要件はありません。
このクエリを書くのを手伝ってくれる人はいますか?
ありがとう...
更新 1:
これが表のレイアウトです(申し訳ありませんが、一般的な名前を使用する必要があります)
表 A
aID、bID、aCol1、aCol2、aCol3 ... aCol10
テーブル B
bID、cID、bCol1、bCol2、bCol3 ... bCol10
表 C
cID、cCol1、cCol2、col3、cCol4 ... cCol10
col3 に一意の値の制約がない場合、クエリは次のように記述します。
...しかし、もちろん、C.col3 の値が一意であることは保証されません。
更新 2:
詳細...
テーブル A とテーブル B は 1 対多の関係にあります。A は「ヘッダー」、B は「アイテム」です。
テーブル B とテーブル C は 1 対 1 の関係にあります。
これらのテーブルはキャッシュ メカニズムの一部であるため、多くのデータは似ているように見えますが、一部の列では異なります。
A はヘッダーであるため、ほとんどの重複値は A
にあります。最初に行を A.aID で並べ替える必要がありますが、その後は最初に返された行のみが必要で、C.col3 の値はありません。その列の前の行に表示されます。
それは物事を少し明確にしますか、それともまだ意味がありませんか? :)
最終更新:
Bartosz Klimek の回答を選択したのは、必要なものに最も近いものだったからです。途中でネストされた結合句を変更する必要がありました。
ご協力ありがとうございました!
algorithm - 一意のエントリを見つけるために 32 ビットの数値を並べ替える方法は?
「ファイル」のデータセットがあります-ファイルの名前と、その後に32ビットの数値が続きます-ファイルのハッシュのようなもの。
一意のファイルを取得するにはどうすればよいので、s2 は他の s2 のプレフィックスではありません。つまり、番号が一意であることを意味します。2 つの同じ s2 がある場合、それらが他の s2 のプレフィックスでない場合、それらは両方とも一意です。
迅速な解決策を探しています。各文字列を他の文字列と比較する解決策を考え出すことはできますが、時間がかかりすぎて効果がありません。もう 1 つのオプションは、何らかの方法でテーブルに MySQL エンジンを使用することでしたが、その方法がわかりません。手伝ってくれますか?
asp.net - Asp.Net SQL の一意のレコード
以前にこの質問をしましたが、答えは私が探していたものではありませんでした。
コードを使用せずに Asp.net でテーブルを作成しました。2 つの列が含まれています。
YourUserId と FriendUserId
これは多対多の関係です。
私が欲しいものは次のとおりです。
あなたの名前が UserId である複数のレコードが存在する可能性があります。また、FriendUserId が同じである複数のレコードが存在する可能性もありますが、両方が同じである複数のレコードが存在することはできません。例えば:
デイブ:グレッグ
デイブ:クリス
グレッグ:クリス
クリス:グレッグ
いいね
デイブ:グレッグ
デイブ:グレッグ
よくない。
テーブルを右クリックして、[インデックス/キー] を選択しました。次に、両方の列を列セクションに配置し、一意にすることを選択しました。これにより、全体としてはユニークになりますが、個別にはユニークではないと思いました。
データセットに移動すると、両方の列の横にキーが表示され、両方の列がチェックされているという制約があることがわかります。
個々の列を一意にすることなく、レコードの重複コピーをテーブルに挿入していないことを確認する方法はありますか?
SQL挿入ステートメントでそれを制御しようとしましたが、うまくいきませんでした。これは私が試したものです。
INSERT INTO [FriendRequests] ([UserId], [FriendUserId]) VALUES ('"+UserId+"', '"+PossibleFriend+"') WHERE NOT EXIST (SELECT [UserId], [FriendUserId] FROM [FriendRequests])
それは何らかの理由で機能しませんでした。ご協力ありがとうございました!
c# - Linq (C#) を使用して一意のレコードを取得する機会はありますか?
私は得たlist<list<string>>
inlist[x][0]
は、一意のレコードを選択したいレコードであるため、そのようなレコードは他のレコードにはありませんlist[x][0
]、それを選択すると、行全体list[x]
が選択されます。Linq でこれに適した例が見つかりませんでした。助けてください :(
編集
ジョン・スキートが私に明確にするように頼んだとき、私は否定できません;-)
文字列テーブルのリストを含みます。文字列「テーブル」のそれぞれにはいくつかのキーが含まれておりlist[x][several_items]
、リストから一意のレコードを取得したい->その「テーブル」の最初のアイテムを意味します。
したがって:
-> unique は、行を一意として導出できることを意味しますitem[3] and item[4]
。数値/文字列の最初の出現が重要であるためです。
2 つ以上のレコード/行 (item[x] of which first item (item[x][0])
リストに複数存在する場合、一意ではありません。
各リストの最初の要素は、一意性を判断するために重要です。たぶん、誰かが一意でないものを見つける方法を見つけるのを手伝ってくれればもっと簡単でしょう - >上の例から、リストは item[0] と item[1] だけを取得します
python - Djangoモデル - 事後にPKで重複値を除外する方法は?
いくつかのクエリを作成して、Django モデル オブジェクトのリストを作成します。次に、重複を削除したいのですが (これらのオブジェクトはすべて auto_increment int PK を持つ同じタイプです)、set() はハッシュ可能ではないため使用できません。
これを行うための迅速かつ簡単な方法はありますか?IDをキーとするリストの代わりにdictを使用することを検討しています。
sql-server - SQL Server でインデックスを一意として宣言する
インデックスが一意の値を持つことがわかっている場合、そのように宣言すると、挿入または選択のパフォーマンスにどのような影響がありますか。
インデックスが一意であることをオプティマイザーが認識している場合、それはクエリ プランにどのように影響しますか?
一意性を指定することで整合性を維持できることは理解していますが、その議論はさておき、パフォーマンスへの影響はどうなるでしょうか。