問題タブ [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.
mysql - 複合キーの MySQL SELECT LAST_INSERT_ID()。出来ますか?
MySQL で複合キーの LAST INSERT ID() を取得できますか?
c# - C#を使用して挿入された行のIDを取得します
列に AUTO_INCREMENT を使用して入力される ID というフィールドがあるテーブルに行を挿入するクエリがあります。次の機能のためにこの値を取得する必要がありますが、以下を実行すると、実際の値が 0 でなくても常に 0 が返されます。
私の理解によると、これは ID 列を返すはずですが、毎回 0 を返すだけです。何か案は?
編集:
私が実行すると:
私は得る:
mysql - LAST_INSERT_ID()MySQL
MySQLの質問がありますが、これは非常に簡単なはずです。次のMySqlクエリを実行するときに、table1から最後に挿入されたIDを返す必要があります。
現在のコードはtable1ではなくtable2のLASTINSERTIDを返すだけであることが理解できるので、table2に挿入した場合でもtable1からIDを取得するにはどうすればよいですか?
mysql - MySQL: 1 つのファイルから 2 つのテーブル (auto_increment ID を持つテーブルと結合テーブル) にデータを挿入します。
2 つのフィールドを持つファイルに、5 億以上のレコードを含むデータがblob
ありますc_id
。
他の 2 つのファイルには、同じデータが別の形式で含まれています。BLOB を含むファイルと、レコードごとの c_ids のコンマ区切りリスト。
私は2つのテーブルを持っています:
一意の BLOB ごとに、table_a のレコードを作成する必要があります。ファイル内の各レコードに対して、table_a への適切な外部キーを使用して table_b 内のレコードを作成する必要があります。
私が現在使用している解決策は、を使用して挿入ステートメントを生成することですlast_insert_id
が、遅すぎます。LOAD DATA INFILE を使用したいのですが、自動インクリメント ID が複雑になっています。
例えば
望ましい出力:
php - mysqliprepareステートメントを使用してinsert_idを取得する方法
mysqli prepareステートメントを使用して最後のレコードのinsert_idを取得するにはどうすればよいですか?たとえば、次のようになりますか?
mysql - PDOは複数の挿入IDを取得します
PDOを使用して次のクエリを実行します(実際には、プリペアドステートメントを使用しますが、同じ問題があります)
INSERT INTO MyTable(MyField) VALUES('Row1'), ('Row2')
Row1
およびに関連するレコードのIDを取得するにはどうすればよいRow2
ですか?
$db->lastInsertId()
文字通り最後の単一IDを返します。
この最後のIDを取得し、レコード数を減算して、範囲がすべてのレコードをカバーすると想定するだけで十分ですか?ギャップ/ジャンプがありますか?このクエリはアトミックであることが保証されていますか?
php - PHP Postgres:最後の挿入IDを取得
このトピックに関する他のいくつかの質問を見つけました。これです...
...そしてマニュアルlastval()
には、いつでも電話をかけることができ、期待どおりに機能することが示されているようです。しかし、これは...
PostgresqlとPHP:マルチユーザーアプリケーションで、currvalは最後に挿入されたIDを取得するための効率的な方法ですか?
...トランザクション内にある必要があると述べているようです。lastval()
だから私の質問はこれです:(トランザクションなしで)クエリを実行する前に、好きなだけ待つことができますか?そして、それは多くの同時接続に直面しても信頼できますか?
magento - トランザクションの途中でMagentoが最後にIDを挿入する
Magento でトランザクションを使用しています。最初の挿入クエリのprimaryKeyを後続のすべてのクエリに使用する必要があります。
トランザクションを保存する前に最後に挿入された ID を取得する方法
mysql - Powershell の last_insert_id
Powershell には、単純な Mysql 挿入コマンドがあります。
Mysql Connector Net 6.2.4 を使用しています。
last_insert_id()
または類似のものを返品することは可能ですか?
ここでいくつかの情報を探しましたが、実際には何も見つかりません。
何かご意見は?
php - mysql_insert_id と last_insert_id の間違った動作
私はこのテーブルを持っています
a_b は一意のキーです。
そして、私はこのようなphpコードを持っています
このコードを 2 回実行すると、私の PC では結果が 1 番目になります
2位
ご覧のとおり、mysql_insert_id() はどちらも同じ値「1」を返します。挿入後の実際の ID を知りたいのですが、次の auto_increment 値は知りたくないので、これで問題ありません。
しかし、別の環境でこのコードを 2 回実行すると、次のようになります。
2位
違いがわかるように、2 回目の結果 mysql_insert_id() は last_insert_id() と同じ値を返します。
この結果は恐ろしいものですが、その理由はわかりません。私のコードは両方の環境で約 3 か月間正常に動作しましたが、これは今日まで発生しませんでした。誰か説明できますか?約 30 日前に 2 番目の環境の PHP バージョンを 5.3.8 にアップグレードしましたが、その他の変更はありません。これはバグですか?
アップデート
3 番目の mysql サーバー (5.1.38-log) に切り替えます。2 番目の挿入は int(0) array(1) { ["last_insert_id()"]=> string(1) "0" } を返します。
そのため、問題はおそらくmysqlのバージョンに関するものであることに気付きました。
最後に、テーブル定義をこれに変更しました
スクリプトも編集します
異なる mysql サーバーは同じ mysql_insert_id を返しますが、last_insert_id() は異なります
5.0.24a-コミュニティ-nt
5.0.51a-ログ
5.1.38-ログ
この動作を制御するシステム変数はありますか? 誰かがそれを知っていれば、それは嬉しいことです。解決策がない場合、私ができる唯一のことは、このような挿入を強制して、別の値でフィールドを更新することです...