問題タブ [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.
php - mysql テーブルでの同時挿入を処理し、正しい挿入 ID をフェッチする方法
PHPライブラリにadodbを使用しています。
レコードが挿入されたIDを取得するには、この関数を使用します
p>データベーステーブルに複数の同時挿入があるかどうかを知りたいのですが、このメソッドは挿入された各レコードの正しい挿入 ID を返しますか?
私がこれを尋ねている理由は、他のレコードをさらに処理し、関連するテーブルに後続のエントリを作成するために、この最後の挿入 ID を使用するためです。
このアプローチは十分に安全ですか、それとも何か不足していますか。
既存のデータを台無しにすることなく、最後の挿入 ID を他のテーブルへの追加の挿入に安全に使用できるように、適切な作業計画を策定するのを手伝ってください。
ありがとう
php - PHP MySQLiおよびMySQLi_STMT:どのinsert_idを使用しますか?
MySQLiクラスとMySQLi_STMTクラスの両方に$insert_idプロパティがあります。
MySQLiオブジェクト(たとえば$ db)を使用してデータベースに接続し、MySQLi_STMTオブジェクト(たとえば$ stmt)を使用してINSERTを実行し、最後のINSERTのIDを取得する場合、次を使用する必要があります。
また
それとも同じでしょうか、その場合は問題ではありませんか?
これは誰かにとって簡単な答えかもしれないと思ったので、テストコードを書いてチェックする時間を節約できました。
いつものように事前に感謝します。
core-data - コア データ エンティティを挿入順に取得する
挿入された順序で Core Data エンティティを取得するために NSSortDescriptor で使用できる内部 ID 変数またはタイムスタンプはありますか?
よりクリーンな方法があれば、そのようなプロパティを作成する必要はありませんが、他に選択肢がない場合は明らかに作成します。
php - 日付と時刻を Mysql に挿入する
日付と時刻をmysqlの日時フィールドに挿入しようとしています。ユーザーが日付と時刻を選択すると、2 つの POST 変数が生成されます。私はインターネットを検索しましたが、まだそれを行う方法がわかりません。
私のコード。
$datetime を mysql に挿入すると、日付は 0000-00-00:00:00:00 のように見えます
誰かがこれについて私を助けてくれれば幸いです。ありがとう。
kohana - コハナ3のinsert_id
MysqlストアドプロシージャでKohana3フレームワークを使用しています。最後に挿入されたレコードのIDを取得するにはどうすればよいですか?コードは次のとおりです。
ドキュメントによると、query()メソッドは、挿入クエリを実行すると、最後の挿入IDと影響を受ける行番号を持つ配列を返します。print_r($ result)を呼び出すと、次のようになります。配列([0] => 0 [1] => 1)データベースに多くのレコードがありますが、insert_idキーは0です。私が間違っているのは何ですか?
mysqli - insert_id mysqli
挿入された ID を mysql INSERT クエリから返そうとしています。関数を実行するたびに、結果として 0 が返されます。以下のスクリプトは実行されますが、挿入されたIDを取り消すことができないため、値を取得できる時点を誰かが説明してください。馬鹿なことをしたのだろう。
mysql - MySQL PhpMyAdmin: AUTO_INCREMENT および/または INSERT_ID の変更
請求書ごとに 1 つのレコードを格納する請求書テーブルがあり、id 列 ( int AUTO_INCREMENT
) が主キーであり、請求書参照番号でもあります。
残念ながら、現在のシステムが使用する 4 桁の ID ではなく、5 桁の ID を持つ古いシステムで生成された請求書を手動で移行する必要がありました。
ただし、PhpMyAdmin (テーブル操作) を介して次の 4 桁の ID にリセットしAUTO_INCREMENT
ても、5 桁の 1 が挿入され、現在テーブルにある上位の ID に 1 を加えた値が挿入されます。
insert_id
周りを検索すると、実際には ? だけでなくAUTO_INCREMENT
?も変更する必要があるようです。ALTER TABLE invoices SET insert_id=8125
同様に実行しようとしましALTER TABLE invoices insert_id=8125
たが、これらのコマンドはどちらも有効ではないようです。
ID以降AUTO_INCREMENT
のレコードを挿入するようにリセットできる正しい方法を誰かが説明できますか?そして、それが到達すると、手動で追加した4つのレコードをスキップし、それ以降の連続したIDを続行します. スキップしない場合-これは実際には問題ではありません。会社は毎年それほど多くの請求書を生成しないため、これは翌年に発生するため、問題が発生しないことを願っています.8125
10962
10966
10962
10966
私が見つけたこの厄介な状況で何か助けていただければ幸いです! どうもありがとう
php - mysqli multi_query と insert_id により、コマンドが同期しなくなります。
同様の質問が寄せられていることは知っています。私はそれらの束(phpドキュメントを含む)を試しましたが、これがうまくいかないようです。
私は次のものを持っています:
上記のコードを実行すると、データベースで次に何をしようとしても、「コマンドが同期されていません。今はこのコマンドを実行できません」というエラーが表示されます。
すべての結果を閉じる必要があることは理解していますが、問題は方法がわからないことです。
true を返すため、結果があるよう$mysqli->more_results()
ですが、use_result() または store_result() を呼び出すと、null が返されます。next_result() を呼び出す前後にそれを試してみましたが、常にnullです:
また
multi_query挿入を実行してinsert_idを呼び出した後、「コマンドが同期していません。現在、このコマンドを実行できません」を取り除く方法を教えてください。ありがとう。
php - PHP –拡張挿入から自動インクリメントされた値を取得する
私は現在$mysqli->insert_id
、新しい行が挿入されたときにMySQLテーブルから自動割り当てされた主キーを取得するために使用しています。これは、単一のインサートで正常に機能します。の単純なケースです
ただし、(実際にはこのサイトから)拡張挿入を使用した方が複数の挿入を行う方がよいことを学びました。
これもうまく機能します。ただし、どのキーが自動割り当てされたかを知りたい場合を除きます。
PHPマニュアルには次のように書かれています。
AUTO_INCREMENTフィールドを持つテーブルで拡張挿入を実行する場合、mysqli_insert_id()の値は最初に 挿入された行の値と等しくなります。
私のテストはこれを確認しているようです。
注:最初または最後だけは必要ありません。
auto_allocatedキーを個別に取得できるようにするためだけに、何千もの単一挿入に戻す必要はありません。
拡張挿入を実行し、(おそらく配列で)割り当てられたすべてのキーを取り戻す方法を知っている人はいますか?
拡張書き込みを実行する前に、最新の既存のキーを読み取って保持し、割り当てられたキーの期待値を計算することは私には思い浮かびましたが、これは少し厄介なようです。