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

SELECT LAST_INSERT_ID()は、プリペアドステートメントを使用した後に0を返します

    LAST_INSERT_IDは、auto_incrementフィールドで作成された自動生成された主キーに対してのみ機能します。あなたの場合、IDを明示的に指定しているように見えるため、最後の挿入IDは設定されていません。

    これは明白です:

    mysql> insert into test (id, name) VALUES (5, 'test 2');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> SELECT LAST_INSERT_ID();
    +------------------+
    | LAST_INSERT_ID() |
    +------------------+
    |                0 |
    +------------------+
    1 row in set (0.00 sec)
    

    これは暗黙的です:

    mysql> insert into test (name) values ('test');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> SELECT LAST_INSERT_ID();
    +------------------+
    | LAST_INSERT_ID() |
    +------------------+
    |                3 |
    +------------------+
    1 row in set (0.00 sec)
    


    1. mysqlビューで自動インクリメントID列を作成することは可能ですか?

    2. java.sql.SQLException:ローカルホストテストに適したドライバーが見つかりません

    3. パーティションがSQLServer(T-SQL)で圧縮されているかどうかを確認する

    4. SQL Serverデータベース(T-SQL)にデータファイルを追加する方法