
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ランキング
-
副問合せを使わずにUNIONと同様...
-
既存データをINSERT文にして出...
-
異なるデータベース間でinner j...
-
【SQL】他テーブルに含まれる値...
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
三科目合計点のクラス別平均点...
-
SQLサーバに対するSQL文で抽出...
-
テーブル名が可変の場合のクエ...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
truncate tableを使って複数の...
-
sqlに記述できない文字
-
オラクルのUPDATEで複数テーブル
-
Accessで今日から5日後
-
複数レコードの複数フィールド...
-
詳細設計書でselect文の導き方
-
SELECTした結果に行番号を求めたい
-
T-SQLで任意の箇所で強制終了す...
-
csvデータ不要列の削除をbatフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
既存データをINSERT文にして出...
-
副問合せを使わずにUNIONと同様...
-
SQLで、Join句で結合したテ...
-
SQLサーバに対するSQL文で抽出...
-
テーブル名が可変の場合のクエ...
-
Accessの構成をコピーしたい
-
Excelでしりとりを作る方法
-
あってますか?SQL
-
結合したテーブルをSUMしたい
-
ADO+ODBCでテーブルに接続する...
-
ExcelのVLOOKUP関数の動作をMyS...
-
SQLです!!教えてください。あ...
-
ACCESSのVBAにてExcelに行...
-
DB2のSQLコマンドについて
-
2つのテーブルをLIKE演算子のよ...
-
親子関係があるテーブルでの抽出
-
PRIMARY KEYのコピー
-
ExcelのMatch関数のようなもの...
-
「総降水量が100mm以上になる...
おすすめ情報