
PHPからMySQLへトランザクションを使わずに、
INSERT INTO test (id,count) VALUES (5,5),(6,6)
のようにINSERTした直後に、SELECT LAST_INSERT_ID();
としても、5が返却されてしまいます。
これはMySQLの仕様でしょうか?
又、
SELECT LAST_INSERT_ID() ではなく、
SELECT LAST_INSERT_ID() FROM test;
のようにテーブル名を指定する方法は何か意味があるのでしょうか?
テーブル名を指定すると、テーブルにあるレコード数分
データが返却されてしまいました。。
No.2ベストアンサー
- 回答日時:
仕様です。
http://dev.mysql.com/doc/refman/5.1/ja/informati …
----- 引用ここから
MySQL 5.1.12 以降では、LAST_INSERT_ID() ( 引数なし ) は、最も最近に実行された INSERT 文の結果として AUTO_INCREMENT カラムに正常に インサートされた、自動的に生成された最初の値を戻します。
----- 引用ここまで
No.3
- 回答日時:
LAST_INSERT_ID()の仕様であることは、#1、#2さんのURLで分かると思います。
>SELECT LAST_INSERT_ID() FROM test;
>のようにテーブル名を指定する方法は何か意味があるのでしょうか?
>テーブル名を指定すると、テーブルにあるレコード数分
>データが返却されてしまいました。。
「select ~ from test」とすれば、当然、testの全行が検索されます。このとき、test表の列でなく、LAST_INSERT_ID()を指定すれば、当然、行数分、同じ値が返されることになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
Accessの構成をコピーしたい
-
既存データをINSERT文にして出...
-
ADO+ODBCでテーブルに接続する...
-
DB2のSQLコマンドについて
-
ExcelのVLOOKUP関数の動作をMyS...
-
ExcelのMatch関数のようなもの...
-
あってますか?SQL
-
SQLです!!教えてください。あ...
-
H2 DataBaseご存知の方教えて...
-
SQLサーバに対するSQL文で抽出...
-
結合したテーブルをSUMしたい
-
複数のテーブルからデータを取...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
フラグをたてるってどういうこ...
-
PostgreSQLのtimestamp型で時間...
-
ACCESS テキストボックスに入...
-
Excel VBAのユーザーフォームで...
-
timestampのデータはどのように...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
SQLサーバに対するSQL文で抽出...
-
既存データをINSERT文にして出...
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
結合したテーブルをSUMしたい
-
副問合せを使わずにUNIONと同様...
-
テーブル名が可変の場合のクエ...
-
2つのテーブルをLIKE演算子のよ...
-
ExcelのMatch関数のようなもの...
-
改行を含んだデータのインポート
-
PRIMARY KEYのコピー
-
ADO+ODBCでテーブルに接続する...
-
ACCESSのVBAにてExcelに行...
-
同一テーブル内での比較(最新...
-
(SQL)日数の計算
-
ExcelのVLOOKUP関数の動作をMyS...
-
データ無し時は空白行にしたい...
-
必要なテーブルの個数について。
-
複数選択か?単数選択か? テ...
おすすめ情報