問題タブ [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 - 私の場合、AUTO_INCREMENT は適切に実装されていますか?
この質問は、私の古い質問、Getting last record from mysqlに少し関連しています。
これらの回答から、SELECT が特定の順序で行を返すことが保証されていないことがわかりました (もちろん ORDER BY 句を使用しません)。
@YaK の回答に従い、AUTO_INCREMENT
以下のコマンドを使用して表に追加しました。
しかし、今日、私は1つの質問を受けました。
SELECT
特定の順序で行を返すことが保証されていない場合 (もちろん句を使用せずにORDER BY
)、テーブルの変更中に THENAUTO_INCREMENT
が適切に実装されるでしょうか?
php - laravel 生クエリ last_insert_id
last_insert_id
laravelの生のクエリを使用するときに取得する方法はありますか?
DB::query('INSERT into table VALUES ('stuff') ')
これは true または false を返します。Laravelで生のクエリを使用してlast_insert_idを取得する方法はありますか?
mysql - Qt の odbc ドライバーは mysql で LastInsertId をサポートしていません。回避策はありますか?
Qt 4.8.3 と MySQL ODBC 3.51 ドライバーを使用しています。ドライバーは、次のようにテストした LastInsertId をサポートしていないようです。
挿入したばかりの自動インクリメント ID を見つけるために必要です
最善の回避策は何ですか?
編集: 複数のクライアントからこのテーブルへの同時アクセスがあります。
php - Mysqlは特定のテーブルの最後のIDを取得します
特定の挿入されたテーブルから最後の挿入IDを取得する必要がありますか?私がこのコードを持っているとしましょう:
テーブルblahblah3のテーブルblahblahの挿入IDを取得するにはどうすればよいですか?LAST_INSERT_ID()は、最後の挿入IDのみを提供します
よろしく、サイモン:)
php - PDO で最後に挿入された行 ID を取得する (不適切な結果)
PDO::lastInsertId()
最後に挿入された行の ID (主キー) を返さず、代わりに外部キー フィールドである別のフィールドを返すメソッドに問題があります。
PHP コード:
MySQL テーブル構造:
MySQL に挿入された行:
PHP 出力:
1
notを返す必要があり19
ます。私のコードに何か問題があるかどうかはわかりません..または、これは通常の動作です:?
戻り値 (PHP ドキュメント):
name パラメーターにシーケンス名が指定されていない場合は 、データベースに挿入された最後の行の行を
PDO::lastInsertId()
表す文字列を返します。ID
name パラメーターにシーケンス名が指定された場合、
PDO::lastInsertId()
指定されたシーケンス オブジェクトから取得された最後の値を表す文字列を返します。PDO
ドライバーがこの機能をサポートしていない場合はPDO::lastInsertId()
、IM001 SQLSTATE
.
php - SQLite3 と last_insert_rowid
これが私のハンドルの作成方法です
$this->_handle = new SQLite3($this->_dbname);
これは、dbクエリを作成する方法です(短縮):
次に、最後に挿入された ID を取得したいと思います。私はこのようにしてみました:
次のエラーが表示されます。
警告: sqlite_last_insert_rowid() は、パラメーター 1 がリソースであると想定し、444 行目で指定されたオブジェクトは NULL です
編集:で開く必要があるため、これは機能しませんsqlite_open()
。
私もこのコードで試しました:
次のエラー メッセージが表示されます。
NULL 警告: SQLite3Stmt::execute() [sqlite3stmt.execute]: ステートメントを実行できません: 制約が .. で失敗しました
エラーはこの行を指しています$stmt->execute();
最後に挿入した ID を取得するにはどうすればよいですか?
php - 複数の挿入と複数の LAST_INSERT_ID() を使用した SQL クエリが機能しない
こんにちは、1 つの SQL クエリを使用して、質問と回答を 2 つのテーブルに保存しようとしています。
PHPMyAdmin のコードを SQL ボックスで実行すると問題なく動作しますが、PHP コード生成スクリプトで実行すると、次のエラーが返されます。
SQL 構文にエラーがあります。使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください
私は何が間違っているのかわかりません...誰か??
前もって感謝します。
php - ストアドプロシージャからのLAST_INSERT_ID()の結果
mysqlにストアドプロシージャがあり、多くの行を更新してから1つ挿入しています(具体的には階層データ構造)。@insert_id変数を設定している最後のコードを除いて、コードをあまり見ないでください。
phpMyAdminからこのプロシージャを実行すると、正しい最後のIDが返されますが、phpから呼び出すと、前に挿入された行のIDが返されます。おそらく問題になる可能性があり、私がそれを行うべきだとあなたが提案するより良い方法はありますか?
これが私がPHPからそれを呼び出す方法です:
これ自体がSELECTクエリとして機能し、前の行の現在挿入されていない行のIDである「120」などの値を持つ1つの行を持つ1つの列「insert_id」を取得しています。
これは、SQL文字列を受け取り、単一の値を返す関数です。
php - PHP MYSQL PDO lastInsertIdは、プロシージャを使用して行を挿入すると0を返します
LastInsertedIDがゼロになり続けます。これは、mysqlストアドプロシージャを使用しているためだと思います。これが私のコードです:
java - MySQLでstatement.getGeneratedKeys()を使用するときに、自動生成された値を取得することは可能ですか?
私はJava経由でmysqlを接続しています。レコードを挿入しようとしていますが、を使用してステータスを検索していstatement.getGeneratedKeys()
ますif (generatedKeys.next())
。これで、挿入されたcoulmnの値を取得できますか(つまり、passという名前の列があり、auto_increament列であり、これが主キーであり、この列に挿入された値を取得したいと思います。出来ますか??