問題タブ [identity-column]

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

sql - すでに入力されているテーブルのSQLリセットIDID

やあみんな。DBに、約1,000個のレコードを含むテーブルがあります。すべてのIDが再びシーケンシャルになるように、ID列をリセットしたいと思います。私はこれを見ていましたが、それは空のテーブルでのみ機能すると仮定しています

現在のテーブル

希望のテーブル

前もって感謝します

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

asp.net-mvc - ステートレス (Web) DB4O アプリケーションでの固有 ID の管理

私は DB4O を使用して新しい Web アプリケーションを構築して遊んでいます。私が苦労していることの 1 つは、現在 DB4O がステートレス アプリケーション (つまり、主に Web アプリケーション) をサポートしていないことと、自動生成された ID が必要なことです。

DB4O のイベントにフックしたり、数値 ID ではなく GUID を使用したり、何らかの理由で ID のシステムをまったく使用しないようにするなど、多くの創造的で興味深いアプローチを見つけることができました。

それぞれのアプローチにはメリットがありますが、あまり洗練されていないアプローチも同様に最適である可能性があるのではないかと考えています。次の擬似コードを検討してください。

とても単純なアプローチのように思えますが、通常、ここで「本当に明らかなことを見逃した」と考え始めます。私は持っていますか?

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

sql-server - SQL Serverは、ID列の順次挿入を保証しますか?

言い換えれば、次の「cursoring」アプローチが機能することが保証されていますか。

  1. DBから行を取得する
  2. 返されたレコードから最大のIDを保存して、後で使用できるようにします。LastMax
  3. 後で、"SELECT * FROM MyTable WHERE Id > {0}", LastMax

それが機能するためには、ステップ1で取得しなかったすべての行のIdが。より大きいことを確認する必要がありLastMaxます。これは保証されていますか、それとも奇妙な競合状態に遭遇する可能性がありますか?

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

sql - ID列SQLServer2005が同じ値を2回挿入

テーブルに挿入するストアドプロシージャがあります(主キーではないID列があります。PKは最初に日付/時刻を使用して挿入され、一意の値が生成されます)。

次に、SCOPEIDENTITY()を使用して値を挿入します。次に、この値に基づいて主キーフィールド値を生成するロジックがあり、これがテーブルに更新されます。

状況によっては、ストアドプロシージャが複数のプロセスによって同時に呼び出され、「PRIMARYKEY制約の違反...」エラーが発生する場合があります。

これは、ID列が複数のレコードに同じ番号を挿入できることを示しているように見えます。

最初の質問-これはどのように可能ですか?

2番目の質問-それを停止する方法...現在エラー処理がないので、いくつかのtry / catchロジックを追加します-しかし、適切に対処するために問題を完全に理解したいと思います

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

sql - SQL:カーソルなしで、重複の一意の整数ID(IDのような)を作成するレコードを選択するにはどうすればよいですか?

PKが主キーである以下のselectステートメントがある場合:

出力は次のようになります(最初の数字はわかりやすくするために間隔が空けられています)。

そして、あなたはこのようなものを出力したいと思います:

PKの「00」に1回の選択で「ID」番号の効果を持たせることは可能ですか?それ以外の場合、その日付で見つかったアクティビティごとに1ずつ番号を増やすにはどうすればよいでしょうか。

Sum(case when ?? then 1 end)のようなものをgroupbyで試すように入力するときにすでに考えています。

編集:(以下のJohnFXによって提供される回答)

これが最終的な答えでした:

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

subsonic3 - SubSonic ActiveRecord で新しい行を挿入した後、Identity 列からキー値を取得できない

ここで明らかな答えが欠けていると確信していますが、手を使うことができます。SubSonic は初めてで、バージョン 3 を使用しています。クエリと挿入ができるようになりましたが、挿入後に ID 列の値を取得する方法に行き詰まっています。Linq テンプレートについて言及した別の投稿を見ました。私はそれらを使用していません (少なくとも私はそうではないと思います...?)

ティア

... アップデート ...

そのため、SubSonic コードがどのように機能するかを監視しながらコードをデバッグしており、inidentity 列が無視されている場所を見つけました。データベースの ID 列のデータ型として int を使用し、それらを ID として設定します。int は c# では null 非許容のデータ型であるため、 (key==null) を実行してキー列に値があるかどうかをチェックする Add メソッド (public void Add(IDataProvider provider)) の論理テストは、問題。ID フィールドの新しい値を取得するコードは「真のパス」にあります。これは、int を null にすることはできず、ID 列のデータ型として int を使用しているため、このテストには合格しません。オブジェクトの ID フィールドに、入力していない 0 が含まれています。オブジェクトの初期化中に設定されていると思います。私はここで基地外ですか?データベースのデータ型を変更するのが答えですか?

別の質問 (もっと好奇心)。生成されたクラスの一部のプロパティが ? で宣言されていることに気付きました。データ型の後。私はこの宣言構造に慣れていません...何が得られますか? int (非キー フィールド) として宣言されているものと、int として宣言されているものがありますか? (キー フィールド)。これは、初期化時の処理方法と関係がありますか?

どんな助けでも大歓迎です!

- バンプ -

0 投票する
4 に答える
352 参照

sql-server - テーブルを分割し、ID リンクを挿入

以下の構造に似た3つのテーブルがあります

EmpFull_Temp テーブルには、ダミーのオブジェクト ID 列を持つレコードがあります...最初の 2 つのテーブルにこのテーブルのレコードを入力したいのですが、最初の 2 つのテーブル間の参照として EmpID を使用します。

ストアドプロシージャでこれを試しました...

しかし、それは言う..マルチパート識別子「EmpFull_Temp.ObjectID」をバインドできませんでした。

これを達成するために私を助けてください...

編集: [名前] + [アドレス]が[EmpBasic]テーブル全体で一意であるという保証はありません

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

c# - C# で LINQ to SQL を使用して自動インクリメント IDENTITY SQL Server フィールドを処理する

LINQ to SQL を使用して SQL Server に接続する ASP.NET MVC サイトを構築しています。ここには、ID を表す IDENTITY bigint 主キー列を持つテーブルがあります。

私のコード メソッドの 1 つで、そのテーブルのオブジェクトを作成してその ID を取得する必要があります。この ID は、別のテーブル (FK と PK の関係) に基づいて別のオブジェクトに配置されます。

IDENTITY 列の値はどの時点で生成され、コードからどのように取得できますか?

次への正しいアプローチは次のとおりです。

  1. IDENTITY 列を持つオブジェクトを作成します
  2. InsertOnSubmit() および SubmitChanges() を実行して、オブジェクトをデータベース テーブルに送信します。
  3. オブジェクトの ID プロパティの値を取得する
0 投票する
3 に答える
7527 参照

sql - How to reseed an an auto increment column in a SQLite database?

Is it possible to reseed an auto increment column in a SQLite database, and if so, how is this done?

ie. The equivalent of DBCC CHECKIDENT ('MyTable', RESEED, 1) in SQL Server.

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

entity-framework - SQLite + Entity Framework 4.0 + ID 列/Autoinc が機能しない

これは私のテーブルです:

EF デザイナーのエンティティには、StoredGeneratedPattern が Identity OR Compute に設定されており、データ型は int64 です。

2 番目の SchoolYear オブジェクトを挿入するたびに、次のエラーが発生します。

同じキーを持つオブジェクトが既に ObjectStateManager にあります...