問題タブ [lastinsertid]

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 に答える
2741 参照

mysql - MySQL と LAST_INSERT_ID() によって返される間違った ID の可能性

私が読んだことからLAST_INSERT_ID()、実行する最後の挿入ステートメントのIDを取得します。最後の挿入ステートメントが接続で実行された場合、または最後の挿入がすべての接続のデータベースで実行された場合は? 私が尋ねようとしているのは次のことだと思います: 忙しいデータベース駆動型の Web サイトで、次のコードが間違った ID を返す可能性はどのくらいですか? データベースをロックする以外にそれを防ぐ方法はありますか?

PHP のmysql_insert_id()方が良い解決策でしょうか、それとも、挿入されたばかりのデータをクエリして、その方法で ID を取得する必要がありますか?

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

postgresql - PostgreSQL に最後に挿入された行 ID

postgresql データベースを使用しています。また、先輩が作成した以前のテーブルは、シーケンスの概念を使用していないため、手動でデータを追加していました。次に、Java アプリケーションでデータを挿入する必要があります。そのためには、最後に挿入された ID が必要です。シーケンスを追加する権限がありません。
誰か助けてください。
前もって感謝します...

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

mysql - Rails 3 - mysql テーブルから最後に挿入された ID を見つける方法

私のコントローラーには、次の一連のコマンドがあります。

そして、データベースにすぐに挿入されるアイテムのIDを取得する方法を考えています...グーグルで検索しようとしましたが、この情報が見つかりません...

ヒントをお寄せいただきありがとうございます

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

cakephp - CakePHP で実行された最後のクエリによって、挿入されたすべてのレコードの ID を取得します

次のように、最後に挿入されたレコードの主キー ID を見つけることができます。

私はこのようなものを探しています:

何百ものレコードを挿入しているので、それらすべてを 1 つのクエリに挿入することをお勧めします。ユースケースの実行にはまだ数秒かかります。最後のクエリで挿入されたレコードのすべての ID を取得する方法はありますか?

これは多くのフォーラムで尋ねられましたが、明確な答えはありません。

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

mysql - LAST_INSERT_ID() を使用してストアド プロシージャから OUT する方法

Mysql バージョン 14.14 ディストリビューション 5.1.41

コンパイルしようとしているストアド プロシージャがありますが、エラーが発生し続けます。私のストアド プロシージャは、insert ステートメントを準備して実行し、準備されたステートメントの割り当てを解除してから、最後の挿入 ID を返そうとします。これは疑似抜粋です。

私のバージョンの mysql を収集できることから、ストアド プロシージャで準備済みステートメントを使用できます。しかし、私が得ているエラーは.

エラーが示すように、プロシージャから戻ることはできません。しかし、私は手順から抜け出すことができますか? OUT されているクエリの例を見つけるのに苦労しています。この例からどのように正確に行うのでしょうか。

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

mysql - mysqlがトリガーでlast_insert_id()を取得する

last_insert_id()を呼び出すと接続が通過するので、last_insert_id()が呼び出されたのと同じ接続に挿入された最後の行のIDを取得することを理解しています。

では、「AFTERINSERT」トリガーでlast_insert_id()を呼び出すとどうなりますか?

私がやりたいのは基本的にこれです

'anothertable'のIDが'sometable'のIDと同じであることが非常に重要です。これは機能しますか、それとも両方のテーブルに挿入する代わりにストアドプロシージャを作成する必要がありますか?

または、トリガーに、トリガーを起動させた挿入ステートメントから値を取得するものがある可能性がありますか?私はそれについて何も見つけていません。

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

php - PDO::lastInsertId が 0 を返すのはなぜですか?

これは私のコードです。

私のログは言う:

ただし、挿入クエリは成功し、データベース レコードが作成され、両方の errorInfo 出力でエラーが発生しません。

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

php - 教義2-PostPersistに最後に挿入されたIDのIDを取得する方法は?

タイトルがすべてを説明しています。エンティティにlifecyclecallback関数があります。エンティティからではなく、PostPersistイベントから最後に挿入されたIDを取得したい。例として、私はやりたくない

ドキュメントにはそれが書かれています

postPersist-エンティティが永続化された後、postPersistイベントがエンティティに対して発生します。これは、データベースの挿入操作の後に呼び出されます。生成された主キー値は、postPersistイベントで使用できます。

では、postPersistで主キーの値を取得するにはどうすればよいですか?(私はMappedsuperclassを使用しており、postpersist関数はMappedsuperclassにあるため、Mappedsuperclassを拡張するすべてのエンティティで使用できます)ありがとうございます。

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

php - 最後に挿入された ID を MySQL から取得できません

ID に基づいて、あるテーブルから別のテーブルに複数の行を挿入しています。このプロジェクトでは、すべての DB クエリに PDO を使用しています。これは私が使用しているコード/関数です:

しかし、何らかの理由で、最後に挿入された ID を取得できません。で試してみるSELECT LAST_INSERT_ID()Toad for MySQL、結果は得られますが、最後に挿入された行の ID ではありません。

この方法で行を挿入すると、最後に挿入された行 ID が登録されないのはなぜですか?
を使用しているためbeginTransactioncommit1回の取引として扱われているのでしょうか?

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

php - PDO Mysqlプリペアドステートメントlast_insert_idは、複数挿入で間違った値を返しますか?

複数挿入ステートメントを準備し、それをPDOを介してMySQLで実行し、次にlast_insert_idを要求すると、最後の行ではなく、複数挿入された行の最初のIDを取得することに気付きました。具体的には:

空のテーブルにこれらの行を作成します。

ただし、last_insert_idは「1」を返します。これは既知の問題ですか、それとも私は何か間違ったことをしていますか?誰かがこれを検証/テスト/説明できますか?私は適切な最後のIDを取得するために何をすべきか途方に暮れていますが、実際の選択を行うことを除けば、はるかに遅くなります。