voodoo
Новичок
multiple insert && last_insert_id
Обнаружил тут, что при инсерте нескольких строк одновременно, ласт айди возвращает вовсе не последнее значение автоинкрементного поля, а первое из вставленных.
Кто чего думает, корректно ли такое поведение:
mysql> create table test (id int auto_increment primary key, test int);
Query OK, 0 rows affected (0.03 sec)
mysql> insert into test(test) values(1),(2),(3);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 1 |
+------------------+
1 row in set (0.02 sec)
mysql> select * from test;
+----+------+
| id | test |
+----+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+----+------+
3 rows in set (0.00 sec)
---------------------------------
Т.е. last_insert_id говорит 1, а на самом деле там уже 3.
То же самое при работе из пхп (mysql_insert_id())
достаньте, плиз, меня из танка
MySQL: 3.23.41
Обнаружил тут, что при инсерте нескольких строк одновременно, ласт айди возвращает вовсе не последнее значение автоинкрементного поля, а первое из вставленных.
Кто чего думает, корректно ли такое поведение:
mysql> create table test (id int auto_increment primary key, test int);
Query OK, 0 rows affected (0.03 sec)
mysql> insert into test(test) values(1),(2),(3);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 1 |
+------------------+
1 row in set (0.02 sec)
mysql> select * from test;
+----+------+
| id | test |
+----+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
+----+------+
3 rows in set (0.00 sec)
---------------------------------
Т.е. last_insert_id говорит 1, а на самом деле там уже 3.
То же самое при работе из пхп (mysql_insert_id())
достаньте, плиз, меня из танка
MySQL: 3.23.41