sqlで挿入したばかりのデータのIDを解析します。

1516 ワード

ラスト.INSERT_ID:LAST_INSERT_IDはテーブルに関係なくテーブルaにデータを挿入した後、テーブルbにデータを挿入すると、LAST_uINSERT_IDが変わります。多くのユーザがデータを交互に挿入する場合、max(id)は明らかに使えない。これはLAST_を使うべきですINSERT_IDが出ました。LAST_のためですINSERT_IDはConnectionに基づいており、各スレッドが独立したConnectionオブジェクトを使用する限り、LAST_INSERT_ID関数はこのConnection対AUTO_に戻ります。INCREMENT列最新のinsert or udate*が生成する最初のレコードのIDを作成します。この値は他のクライアントに影響されてはいけません。他のクライアントの活動を心配することなく、自分のIDを取り戻すことができます。ロックをかける必要がありません。単一INSERT文を使って複数のレコードを挿入します。  ラスト.INSERT_IDはリストを返します。SELECTラスターが使えます。insert_id()LAST_を調べますINSERT_IDの値.Important:If you insert multiple rows using a single INSERT statement,LAST_INSERT_ID()returns the value generated for the first inserted row only.単一INSERT文を使って複数のレコードを挿入し、  ラスト.INSERT_IDは、挿入された最初のレコードから生成された値のみを返します。 mysql>INSERT INTO VALL(NULL、'aaaaa'),(NULL,'bbb'),(NULL,'ccc')    mysql>SELECT*FROM t;    +----+------+    | id𞓜name124;    +----+------+    |  1|Bob  |    |  2|aa 124;    |  3|bb 124;    |  4|ccc 124;    +----+------+    mysql>SELECT LAST_INSERT_ID()    +------------------+    | ラスト.INSERT_ID()124    +------------------+    |                2|    +------------------+  ID 2は、1条目の記録aaaaを挿入する際に発生する.select@IDENTITY:String sql=「select@@IDENTITY」です。@identityは、identity属性(すなわち自己増加列)を持つテーブルに最近データを挿入した時に対応する自己増加列の値を表し、システム定義のグローバル変数です。一般的にシステムで定義されているグローバル変数は、@@で始まり、ユーザー定義変数は@で始まります。例えば、テーブルAがありますが、自増列はidです。Aテーブルに1行のデータを挿入した後、データを挿入した後、増列の値が自動的に101に増加すると、select@dentityによって得られた値は101です。@dentityを使う前提は、insert操作を行った後、select@@dentityを実行する時に接続がオフされていない場合、NULL値が得られます。