問題タブ [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.
sql - すでに入力されているテーブルのSQLリセットIDID
やあみんな。DBに、約1,000個のレコードを含むテーブルがあります。すべてのIDが再びシーケンシャルになるように、ID列をリセットしたいと思います。私はこれを見ていましたが、それは空のテーブルでのみ機能すると仮定しています
現在のテーブル
希望のテーブル
前もって感謝します
asp.net-mvc - ステートレス (Web) DB4O アプリケーションでの固有 ID の管理
私は DB4O を使用して新しい Web アプリケーションを構築して遊んでいます。私が苦労していることの 1 つは、現在 DB4O がステートレス アプリケーション (つまり、主に Web アプリケーション) をサポートしていないことと、自動生成された ID が必要なことです。
DB4O のイベントにフックしたり、数値 ID ではなく GUID を使用したり、何らかの理由で ID のシステムをまったく使用しないようにするなど、多くの創造的で興味深いアプローチを見つけることができました。
それぞれのアプローチにはメリットがありますが、あまり洗練されていないアプローチも同様に最適である可能性があるのではないかと考えています。次の擬似コードを検討してください。
とても単純なアプローチのように思えますが、通常、ここで「本当に明らかなことを見逃した」と考え始めます。私は持っていますか?
sql-server - SQL Serverは、ID列の順次挿入を保証しますか?
言い換えれば、次の「cursoring」アプローチが機能することが保証されていますか。
- DBから行を取得する
- 返されたレコードから最大のIDを保存して、後で使用できるようにします。
LastMax
- 後で、
"SELECT * FROM MyTable WHERE Id > {0}", LastMax
それが機能するためには、ステップ1で取得しなかったすべての行のIdが。より大きいことを確認する必要がありLastMax
ます。これは保証されていますか、それとも奇妙な競合状態に遭遇する可能性がありますか?
sql - ID列SQLServer2005が同じ値を2回挿入
テーブルに挿入するストアドプロシージャがあります(主キーではないID列があります。PKは最初に日付/時刻を使用して挿入され、一意の値が生成されます)。
次に、SCOPEIDENTITY()を使用して値を挿入します。次に、この値に基づいて主キーフィールド値を生成するロジックがあり、これがテーブルに更新されます。
状況によっては、ストアドプロシージャが複数のプロセスによって同時に呼び出され、「PRIMARYKEY制約の違反...」エラーが発生する場合があります。
これは、ID列が複数のレコードに同じ番号を挿入できることを示しているように見えます。
最初の質問-これはどのように可能ですか?
2番目の質問-それを停止する方法...現在エラー処理がないので、いくつかのtry / catchロジックを追加します-しかし、適切に対処するために問題を完全に理解したいと思います
sql - SQL:カーソルなしで、重複の一意の整数ID(IDのような)を作成するレコードを選択するにはどうすればよいですか?
PKが主キーである以下のselectステートメントがある場合:
出力は次のようになります(最初の数字はわかりやすくするために間隔が空けられています)。
そして、あなたはこのようなものを出力したいと思います:
PKの「00」に1回の選択で「ID」番号の効果を持たせることは可能ですか?それ以外の場合、その日付で見つかったアクティビティごとに1ずつ番号を増やすにはどうすればよいでしょうか。
Sum(case when ?? then 1 end)のようなものをgroupbyで試すように入力するときにすでに考えています。
編集:(以下のJohnFXによって提供される回答)
これが最終的な答えでした:
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 として宣言されているものがありますか? (キー フィールド)。これは、初期化時の処理方法と関係がありますか?
どんな助けでも大歓迎です!
- バンプ -
sql-server - テーブルを分割し、ID リンクを挿入
以下の構造に似た3つのテーブルがあります
EmpFull_Temp テーブルには、ダミーのオブジェクト ID 列を持つレコードがあります...最初の 2 つのテーブルにこのテーブルのレコードを入力したいのですが、最初の 2 つのテーブル間の参照として EmpID を使用します。
ストアドプロシージャでこれを試しました...
しかし、それは言う..マルチパート識別子「EmpFull_Temp.ObjectID」をバインドできませんでした。
これを達成するために私を助けてください...
編集: [名前] + [アドレス]が[EmpBasic]テーブル全体で一意であるという保証はありません
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 列の値はどの時点で生成され、コードからどのように取得できますか?
次への正しいアプローチは次のとおりです。
- IDENTITY 列を持つオブジェクトを作成します
- InsertOnSubmit() および SubmitChanges() を実行して、オブジェクトをデータベース テーブルに送信します。
- オブジェクトの ID プロパティの値を取得する
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.
entity-framework - SQLite + Entity Framework 4.0 + ID 列/Autoinc が機能しない
これは私のテーブルです:
EF デザイナーのエンティティには、StoredGeneratedPattern が Identity OR Compute に設定されており、データ型は int64 です。
2 番目の SchoolYear オブジェクトを挿入するたびに、次のエラーが発生します。
同じキーを持つオブジェクトが既に ObjectStateManager にあります...