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

mysql - ID を持つ人物を 1 つのクエリに挿入しますか?

次のように MySQL データベースにデータを追加する必要があります。

Person: pId, nameId, titleId, age

Name: nameId, name

Title: titleId, title

データベースに名前やタイトルを複数回入れたくないので、解決策がわかりませんでしたLAST_INSERT_ID()

私のアプローチは次のようになります。

しかし、それはかなり汚いアプローチだと思います!? 可能であれば、1 つのクエリで複数の人を追加し、db に複数回追加する必要はありません。これは良い方法で可能ですか?ありがとう!

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

php - LAST_INSERT_ID が UPDATE で機能しない

この SQL を使用する場合:

0最後の挿入 ID として取得します。私はphpを使用しmysqli_insert_idていますが、ここに次のように書かれています:

私のテーブルformualreにはauto increment列があるので、どこに問題があるのか​​ わかりません

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

php - MySQL Last_Insert_ID 構文

私はこのコードを持っています:

コードを実行しようとすると、次の MySQL エラーが表示You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @id = (SELECT LAST_INSERT_ID())INSERT INTO test_descriptions (test_id, descr' at line 2されます。ありがとう。

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

php - php から select last_insert_id() を使用しても機能しない

私はこれとまったく同じ問題を抱えていますが、その答えは古く、他の場所で mysql_insert_id() の使用が減価償却されており、新しいコードでは避ける必要があることを読みました。

データベースは InnoDB で、このテーブルの主キーは auto_increment に設定されています。

ここで私が間違っていることを誰かが見ることができますか? 私は初心者であり、独学で学習していることに注意してください。申し訳ありませんが、これは明白です。

更新: mysqli を使用しています。

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

php - Insert_id は、次の準備されたステートメントで直接使用される場合は null です

最後に、準備されたステートメントの学習に取り掛かります。単純な挿入のペアを実行しようとすると、非常に厄介なエラーが発生します。

次のecho $pv_stmt->error;エラーが表示されます。Column 'page_id' cannot be null

あなたが解釈できると確信しているので、最初のステートメントのpage_idを割り当てようとしています。insert_idこの値が null ではなく、整数値を返すことは 100% 確信しています。私はこれで直接テストしました:

出力?NEW ID: 13::1

私は何を間違っていますか?列が null でないのに、「列を null にすることはできません」というメッセージが表示されるのはなぜですか? 私がオンラインで見つけることができる唯一の解決策は、予期しない null 値を含むことです。

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

sql-server - MSSQL トリガー - INSERT で新しく挿入されたレコードを更新する

ステートメントが 0 を超える値を返すCustomerContact場合、テーブルに挿入される行を変更 (Set Deleted = 1) したいと考えています。SELECT

私は以下を持っていますが、テストされていません:

IF私のステートメント内では、挿入によって作成されたレコードの新しく挿入された IDFROM INSERTEDが返されると仮定して、 を使用しています。

この声明について 2 つの質問があります。

  • ステートメントのこの部分は、UPDATE挿入されたばかりのレコードを実行しCustomerContactますか?

    UPDATE CustomerContact SET Deleted = 1 WHERE CustomerContactID IN (SELECT CustomerContactID FROM INSERTED);

  • SELECTこれは、ステートメントの結果に基づいて挿入されたばかりの行に変更を加えるのに正しいと見なされる方法ですか?

CustomerContactID自動インクリメント主キー列です。

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

php - SQL LAST_INSERT_ID() と PHP insert_id の両方が 0 を返す

私はこの問題についてグーグルをよく検索してきましたが、実際には何も見つかりませんでした。人々は、last_insert_id に関する MySQL ドキュメントをコピーし続けるだけで、他には何もありません。

両方の状況 (php と sql) で 0 が返されるため、last_insert_id に関する問題があります。

はい: PRIMARY & UNIQUE フィールドに AUTO_INCREMENT 値を設定しました はい: 前に挿入を行いました いいえ: INSERT AND SELECT LAST で二重クエリを作成します... 機能しません。

接続とクエリを維持するためのクラス Db を作成しました。

そして、それは機能しません。

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

php - 存在しない場合は新しい行を挿入し、新規または既存の ID を取得します

NOT EXISTSlast_insert_id()を 1 つのコードで使用して、次のことを行いたいと考えています。以下のコードは私のニーズを満たしています。 Col1 は一意のキーであり、コードが既に存在する場合はデータを挿入しません。新しい行が挿入されるか、既に存在する場合、コードは常に関連する行の $id を返します。