問題タブ [auto-increment]
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.
mysql - mysqlでカスタム自動インクリメント関数を作成するのに役立ちます
複数のテーブル間で指定された列の一意性を維持できる自動インクリメント関数を作成したいと思います。
これはmysqlの標準関数ではサポートされていないことを理解していますが、これは手動で実行できるようです。誰かが私を正しい方向に向けることができますか?
ありがとう
c# - DataTable 内のすべての自動インクリメント列を更新する方法は?
SQL Server 2005 データベースの ID 列である "Id" 列を持つ DataTable があります。この列には、AutoIncrement プロパティが true に設定されています。テーブルは挿入のみに使用するため、DB からのデータをテーブルに入力しません。そのため、1 から始まる偽の ID が割り当てられます。
しかし、tableAdapter.Update() を呼び出した後、データベースによって割り当てられた REAL ID をその列に入れたいと思います。
何らかの理由で、最初の行のみが更新され、残りはすべて更新されません。このテーブルは、カスケード DataRelation (階層構造) を使用して自身を参照し、最初の行への参照も更新されます。
それに応じてすべてのIDを更新する方法を教えてください。
前もって感謝します!
INSERT ステートメント:
コンポーネント テーブルのスキーマは次のとおりです。
Id 列の名前は「Id」、「ComponentId」は FK 参照列であることに注意してください。
sql-server-2005 - SQL Server 2000と2005でのSETIDENTITY_INSERTの動作の違いは?
SQLServer2000とSQLServer2005の両方で提供されるDBを(現在)使用する必要があるアプリケーションがあります。
DBをプログラムで1つのサーバーから別のサーバーに移動しようとしています。私が使用するすべてのテーブルには、自動インクリメントされる主キーがあります。これらの自動インクリメントキーは他のテーブルで外部キーとして使用されるため、テーブルをコピーするための攻撃の計画は、宛先テーブルの自動インクリメントを一時的にオフにし、レコードを逐語的に(元の主キーで)挿入してから自動にすることでした。 -インクリメントし直します。
正しく理解していれば、実行することで一度に1つのテーブルで「自動インクリメントのオン/オフを切り替える」ことができます。
私の実装はVB2005で、System.Data.SqlClientを使用しています。
簡潔にするために、SQLクエリの構築に関連するコード行のみを示します。
テーブルを作成するには:
IDENTITY_INSERTをオンまたはオフにするには:
主キーを指定せずに、通常どおりに新しいレコードを挿入するには、次の手順に従います。
明示的な主キーを使用して新しいレコードを挿入するには、次の手順に従います。
したがって、私の計画では、IDENTITY_ INSERTをオンにするコードを呼び出し、明示的な主キーを使用してレコードを追加してから、IDENTITY_INSERTをオフにします。
このメソッドは、SQL Server 2000と通信しているときは正常に機能しているように見えますが、SQL Server 2005に対してまったく同じコードを試してみると、例外が発生します。
ヒントはありますか?いつものように事前に感謝します。
java - コミットされていないデータベーストランザクションと自動インクリメント列
私は今日、いくつかの奇妙な行動に遭遇し、それが期待されているのか、それとも標準的なのか疑問に思いました。MySQL5に対してHibernateを使用しています。コーディングの過程で、トランザクションを閉じるのを忘れましたが、他の人が関係していると思います。
最終的にトランザクションを閉じ、コードを実行してテーブルを確認したところ、次のことに気づきました。トランザクションを閉じずに誤ってコードを実行したため、実際の行が挿入されなかったにもかかわらず、自動インクリメントの代理主キー値がインクリメントされたため、ギャップがありました(つまり、idフィールド値が751から762)。
これは予想される動作ですか、それとも標準的な動作ですか?データベースによって異なるのでしょうか?および/またはHibernate自身のトランザクション抽象化はこれに何らかの影響を与える可能性がありますか?
c# - C#/SQLは自動インクリメントされたフィールド値を取得します
自動インクリメントされた主キーを持つテーブルがあります。私のコードでは、各「挿入」クエリを実行するときに、新しい自動インクリメント値を受け取ろうとしています。プログラムでそれを行う方法はありますか?
ありがとう。
UPD:テーブルがあると仮定します:TABLE User(userID INT NOT NULL AUTO_INCREMENT、name VARCHAR(25)NOT NULL、email VARCHAR(50)NOT NULL、UNIQUE(userID));
そして、このテーブルに新しい値(名前と電子メール)を挿入すると、新しく生成されたuserIDを自動的に受け取ります。理想的には、単一のトランザクションで、ストアドプロシージャなしでそれを行う方法を探しています。
mysql - WHEREなしのDELETE後のMySQL自動インクリメント値
走って気づいた、
ID(自動インクリメント)の値がおかしくなった
私がするとき、この順序で、
認定ガイドには、WHEREなしのDELETEを使用してテーブルを空にするとIDがリセットされる場合とリセットされない場合があると記載されていますが、IDシーケンスが非常に奇妙になった原因は何ですか?それが行が挿入された順序であると確信しています。もともと削除する前はテーブルに6行あったので、7、8、9は理解できるようです。
database - 複数のDB/サーバーに関する情報のID
私は最初から可能な限り柔軟でスケーラブルになりたいプロジェクトに取り組んでいます。私が懸念している問題は、Founders atWorkのJoshuaSchacterが最もよく説明している問題です。彼は、事前に計画したいと思っていた詳細の1つとしてそれを指摘しました。
1台のマシン、1つのデータベースを超えてスケーリングすることは、レプリケーションを使用する場合でも非常に困難です。そこにあるツールは完全に正しくありません。
たとえば、テーブルに物を追加して番号を付ける場合、番号が衝突するため、2台目のマシンもそれらに追加することはできません。それで、あなたは何をしますか?あなたはそれをするためにいくつかの完全に異なる方法を考え出さなければなりません。
番号セットを配布する中央サーバーがありますか、それとも番号ではないものを思いつきますか?乱数を使用して、それらが衝突しないことを望みますか?それが何であれ、自動割り当てされたIDは飛ばないだけです。
ここの誰かがこの問題に直面しましたか?自動インクリメントされたIDを超える方法は何ですか、または複数のサーバーでIDを拡張する方法はありますか?
php - 準備されたステートメントで実行された挿入クエリの後に自動インクリメント ID を取得する
php と mysqli _
* 関数を使用してストアド プロシージャを使用して挿入クエリを実行した場合、自動インクリメント ID フィールドの値を取得する方法はありますか?
mysqli->insert_id
動作しないようです。
ruby-on-rails - ID が 1 ではなく 0 から自動インクリメントする Rails モデルを作成できますか?
ID が 1 ではなく 0 から自動インクリメントする Rails モデルを作成できますか? どのように?落とし穴はありますか?ここで確認しましたが、できないようです:
http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#M001911
できないように見える場合、このクラスの最初のインスタンスに 0 の ID を手動で割り当てることができない、または割り当てる必要がない理由はありますか? その場合、Rails は次に作成されるインスタンスに ID 1 を自動的に割り当てますか?
subsonic - SubSonicPrimaryKeyは自動インクリメントされません
現在のバージョンのSubSonicは、自動インクリメントではないPrimaryKey(Int)をサポートしていますか?どのように?
PS:SimpleRepository()を使用しない場合は、割り当てられたIDで新しいレコードを保存できるので、多かれ少なかれ続行できます。