問題タブ [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 投票する
3 に答える
183 参照

php - 最新の挿入 ID を返す

最新の挿入 ID を取得できません。これは私のphpコードです:

MySQL に直接クエリを'SELECT LAST_INSERT_ID() FROM candidates'入力すると、このテーブルにあるのと同じ数のレコードが取得されます。すべての値は 0 です。たとえば、現在 5 つのレコードがあり、id は 2,3,4,5,6 です (最初のレコードを削除しました)。 )、私はこのテーブルを取得します:
LAST_INSERT_ID()
0
0
0
0
0

最新の挿入レコード ID を取得するにはどうすればよいですか? ところで 1 列のみAUTO_INCREMENTですid

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

php - selectlast_insert_idを使用して一意のIDを生成する

Stackoverflowで可能なオプションを読んだ後、私が検討している正確なケースの答えがわかりません...

ケース:mysqlに接続されたテンプレートを自動生成するphpシステムがあります。

システムが機能するためには、生成された各テンプレートに、作成時に一意の6桁の整数が割り当てられている必要があります。ランダマイザーなどをいじる代わりに...

A)データベースに'pageid'という名前のテーブルをint(11)/ unique / autoincrementで開始値100000で作成し、テンプレート作成プロセス中にこのテーブルに挿入を実行してから、' last_insert_id()'を選択して最後の値をプルし、作成時にテンプレートに挿入しますか?(言い換えると、テーブルの唯一の機能は、最後の一意のIDを生成して吐き戻すことです)。

B)もしそうなら、私がこの方法を使用することについて心配すべき問題はありますか?(これは、899,999個のテンプレートしか生成できないという事実を除けば、この場合は問題になりません)。

任意の考えやより良い方法を高く評価しています...

0 投票する
9 に答える
10906 参照

mysql - PDO-複数行の挿入クエリのlastInsertId()

2匹のペットをテーブルに挿入し、それらのlastInsertId()を取得して、一度に1匹ずつさらに処理することができます(2つのクエリ)。
1つのクエリに2つの行を挿入する場合、2つのlastInsertIds()を取得し、それらを変数に割り当てる方法があるかどうか疑問に思っています。

cocoとjojoのlastInsertId()を取得することは可能ですか?だから次のようなもの:

これは同じIDを与えますが、2つのIDを取得する方法はありますか?参考までに、これはtryブロックにあります。

0 投票する
2 に答える
4347 参照

zend-framework2 - Zend / ZF2 / TableGateway mysql_insert_id の置き換え?

mysql から Zend / TableGateway クラスに切り替えようとしています。

mysql_insert_id に似た、最後に挿入された行の自動インクリメントされた ID を取得する方法があるのだろうか。

グーグルで検索すると、DB-Adapter の lastInsertId() を指すいくつかの回答が見つかりましたが、このメソッドは ZF2 では使用できなくなったようです。また、insert メソッドの戻り値は、ZF1 のような最後の ID ではなく、ブール値を返します。

現在、私は醜い回避策を使用しています。以下のコードを参照してください。

IDを取得するためのより良い/推奨される方法はありますか?

0 投票する
0 に答える
374 参照

mysql - Auto_increment 値を増やさないようにしますか?

MySQL では、行の挿入と「最終挿入 ID」の更新を同時に行うことができます。私はこのトリックを使用して、アイテムを条件付き (一意性) に挿入し、すべての場合に一意の ID を取得できるようにしています。

以下のコードは機能します。問題は、ON DUPLICATE KEYステートメントがAuto_increment値も更新することです。それを避けることは可能ですか?

これで、 で 1 つのエントリができましid=1た。ただし、 2 番目のエントリが失敗したときに値が更新されたため、次のエントリには値が含まれます。これは次のように確認できます。id=3Auto_incrementINSERT

Q:このトリック (または同等のもの) を使用してAuto_increment値を保持することは可能ですか? 明らかに、この場合、更新する必要はありません。

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

mysql - ストアド プロシージャと mysql_insert_id の問題

私の問題は次のとおりです。php から mysql へのストア プロシージャを作成しました。誰かがその練習について何か言う前に、手順はうまくいきます。問題はこれです.phpからプロシージャを呼び出し、レコードが入力されたことを知っている場合、mysql_insert_id()は0を返します...理由はありますか?

ああ、はい、私の id フィールドは AUTO_INCREMENT と PRIMARY KEY です

ps ここで私のコードをフォーマットする簡単な方法があれば、教えてください。pre を html に入れましたが、あまりうまく動作していないようです。

事前にタイ。

そしてPHPコード

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

php - mysqlでSTOREDPROCEDUREを呼び出すと、なぜpdo-> lastInsertId()が0を返すのですか?

データベースの最後に挿入された行の戻りIDが必要です:

pdoを使用するDatabaseHandlerという名前のクラスがあります

およびmysqldbのストアドプロシージャ:

このように呼び出すと、データベースレコードが作成されますが、lastInsertId()は0を返します。

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

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

python - ねじれた adbapi: runInteraction last_insert_id()

下の 2 行目の lastID は、1 行目の挿入に対応しますか? または、runInteraction スレッドのいずれかからのものである可能性がありますか?

0 投票する
2 に答える
908 参照

php - 行ごとに LAST_INSERT_ROW を使用した単一の MySQL 複数行 INSERT の PHP?

質問の下部にある「マイコード」にスキップして、ポイントに直行してください。


$con = mysql_connect('localhost', 'mysql_user', 'mysql_password');


一般的な例:

このように、単一mysql_queryの 内で複数のクエリ文字列を実行できます...

このように、各クエリ文字列に複数の行を追加できます...

このような値の配列で...

...クエリ文字列は、次のようにループを使用して動的に作成できます...


質問:

2 番目のクエリ文字列によって挿入された各行が最初のクエリ文字列によって挿入された対応する行を参照できるように、複数の INSERT クエリ文字列をそれぞれ複数の行で実行する単一の MySQL クエリを作成する方法。したがって$var、このスニペットでは、最初の INSERT の auto_increment 行 ID に対応します。


私のコード:

これは私のコードの簡略化されたバージョンです...

生成する安全な方法は何$row_ID_from_first_insertですか?

私の理解LAST_INSERT_ID()では、単一のクエリ文字列で複数の行が挿入されると、最初に挿入された行 ID のみが返されるため、クエリ文字列での使用は機能しません。LAST_INSERT_ID()+1foreach ループで where1をインクリメンタル変数に置き換えても安全ですか? 異なるユーザーから同時に複数の送信が行われた場合はどうなりますか?

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

mysql - MySQLテーブルの行をコピーした後に行IDを返す方法は?

テーブルの行をコピー/複製してから、新しい行の「id」値を返す必要があります。私の「id」列は自動インクリメント フィールドです。

これを行うと$id_new = $dbh->lastInsertId();「0」が返されますが、理由はわかりません。何か案は?