問題タブ [last-insert-id]

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

mysql - mysqlサーバーとクライアントプロトコルの「影響を受ける行」と「last_insert_id」は何に使用されますか?

mysql サーバーとクライアント プロトコルを見ると、 Ok_Packet に「影響を受ける行」「last-insert-id」の 2 つの列があります。
Ok_packet は、クライアントから送信されたコマンドの応答としてサーバーからクライアントに送信されることを知っています。クライアントにとっては役に立たないようです。 mysql-docここに画像の説明を入力から

彼らは本当に何のために使ったのだろうか?

これに関する任意のアイデアをいただければ幸いです。

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

php - 最後に挿入された行から最後の挿入 ID を取得する

私は再びここに来て、私は夢中になっています!私はこのストアドプロシージャを持っています:

最後の挿入IDを取得するにはどうすればよいですか??? パラメータを使用せずに、またはテーブルでmax(id)を使用して選択を行うか、「set last_id = last_insert_id()」を使用してすべてを試しましたが、php経由で取得する方法がわかりませんか?

phpmyadminでプロシージャを呼び出すと、次のようなものが得られます

そしてphpでは明らかに配列で同じ結果が得られます。

私は何を間違っていますか?

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

mysql - 挿入する前に LAST_INSERT_ID() をクリアして、返されたものが挿入からのものかどうかを確認します

LAST_INSERT_ID()自動インクリメント列によって現在の接続に対して生成された最新のIDを返しますが、その値が最後の挿入からのものであり、同じ接続での以前の挿入からのものではないかどうかはどうすればわかりますか?

プールからの接続を使用していて、接続を取得する前に行を挿入した可能性があり、条件付き挿入を実行するとします。

返された値が挿入からのものかどうかを知る方法がありません。

私が考えた1つの方法は次のとおりです。

値を「クリア」する方法はありLAST_INSERT_ID()ますか?ゼロ以外の値が返された場合、SQL によって引き起こされた新しい値であることがわかりますか?

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

php - lastInsertId() は、そのスクリプトまたは全体によって挿入された最後の ID を取得しますか?

私はどのように正確に機能するのだろうかと思っていますlastInsertId()。Atm、挿入された行の ID を取得するためにこのように使用しているので、この ID をコードの他のセクションで使用できます。例えば:

さて、私の質問は次のとおりです。

1)このスクリプトはlastInsertId、その特定のスクリプトで実行された SQL 挿入を取得しますか?

2)たとえば、3 人の異なるユーザーが同じテーブルに数ナノ秒の差でデータを挿入したとします。このようなもの:

その場合、lastInsertId()そのスクリプトによって挿入された行の最後の ID だったので値 1 を返しますか、それともスクリプトがlastInsertId()関数を実行する行に到達するまでに最後の ID だったので 3 を返しますか?

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

mysql - How to best efficiently get multiple last_insert_ids

I have an SQL INSERT statement like this:

I realise that LAST_INSERT_ID() will only get the AUTO_INCREMENT id for the first inserted from the list. There will be more lists. Is there a more efficient way of getting each of the last_insert_ids without repeating(with a PHP loop structure) the INSERT queries all over like this:

I want to make other INSERT statements on another table based on these individual last_insert_ids.

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

php - PDO の最後の挿入 ID は 0 を返します

最後の挿入IDの問題に直面しています。これは私のテーブル構造です

ここでは、最後の挿入 ID をセッションに設定し、すべてのトランザクションにユーザー ID を使用しています。私のローカル テストでは、最後の挿入 ID を正しく取得しています。すべてが完璧に機能します。しかし、コードをサーバーにアップロードすると、ある時点でセッションが設定されないか、最後の挿入 ID が 0 になります。ライブ サーバーで問題を再現する方法がわかりません。

新しいユーザー ID を取得するために最後の挿入 ID またはその他の代替手段を使用するのは正しい方法ですか?

私はいくつかのケースで使用するのを見ました

このコードは必要ですか?

状況をデバッグするのを手伝ってください。前もって感謝します

//編集