sql >> データベース >  >> RDS >> Mysql

SQLのみを使用して選択、更新、または挿入した後に影響を受けるプライマリキーを取得しますか?

    SELECT LAST_INSERT_ID();
    

    そして真剣に、「insert mysqlからの主キー」をGoogleに入れると、最初の結果としてスタックオーバーフローの答えが得られます。

    編集:コメントに基づいてより多くの議論。

    更新の影響を受ける行を確認する場合は、UPDATEステートメントと同じWHERE句とJOIN基準を使用してSELECTを実行します(例:

    )。
    UPDATE foo SET a = 5 WHERE b > 10;
    
    SELECT id FROM foo WHERE b > 10;
    

    自動インクリメントの主キーがないテーブルにINSERTを実行する場合は、特別なことをする必要はありません。 INSERTステートメントで自分で設定するため、新しい主キーが何であるかはすでにわかっています。 PKの変更を追跡するコードの外部からのINSERTステートメントを処理できるコードが必要な場合は、INSERTステートメントを解析するか、呼び出し元のコードに主キーに関する情報を提供させる必要があります。




    1. 特別なプリンシパル 'sa' は使用できません

    2. oracle sql (左括弧がありません

    3. `SqlDbType.Structured`を使用してNHibernateでテーブル値パラメーターを渡すことは可能ですか?

    4. SQLiteDatabase.query()でString[]selectionArgsを使用する