| Bug #23315 | last_insert_id() does not work | ||
|---|---|---|---|
| Submitted: | 16 Oct 2006 1:05 | Modified: | 4 Jan 2007 12:49 |
| Reporter: | Ghazi Sarhan | Email Updates: | |
| Status: | Won't fix | Impact on me: | |
| Category: | MySQL Query Browser | Severity: | S3 (Non-critical) |
| Version: | 1.2.4 beta | OS: | Windows (WindowsXP) |
| Assigned to: | Mike Lischke | CPU Architecture: | Any |
[16 Oct 2006 6:08]
Valeriy Kravchuk
Thank you for a problem report. Please, try to repeat with a newer version, 1.2.4 rc, and inform about the results.
[16 Oct 2006 8:44]
Ghazi Sarhan
The latest version I found on the website was 1.2.4 beta, I tried it and I got the same problem. I found the following in the server log, this may explane this problem: 061016 11:34:02 56 Connect root@localhost on test 56 Query SET SESSION interactive_timeout=1000000 56 Query SELECT @@sql_mode 56 Query SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' 56 Query SET NAMES utf8 56 Query SELECT @@SQL_MODE 56 Query insert into t1 values(null) 061016 11:34:03 56 Quit 57 Connect root@localhost on test 57 Query SET SESSION interactive_timeout=1000000 57 Query SELECT @@sql_mode 57 Query SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' 57 Query SET NAMES utf8 57 Query SELECT @@SQL_MODE 57 Query select last_insert_id() 57 Quit It seems that MySQL Query Browser creates a new connection for each query command then drops the connection, which will make the last_insert_id() the first query command in a connection, which will be zero.
[16 Oct 2006 8:59]
Valeriy Kravchuk
Verified just as described.
[4 Jan 2007 12:49]
Mike Lischke
Fixing this requires some larger changes in the code we can't do right now. We'll later come back to this issue.
[12 Dec 2009 16:08]
Valeriy Kravchuk
Works as expected in MySQL Workbench 5.1.10. Please, check it.
[16 Feb 2012 19:08]
Ralf Steffler
It works, if you run it in a procedure ! Same applies to ODBC Applications.
[13 Mar 2014 13:35]
Omer Barnir
This bug is not scheduled to be fixed at this time.

Description: After inserting a record the last_insert_id() does not work in MySQL Query Browser, from MySQL server's command line it works. How to repeat: From MySQL Query Browser: use test; CREATE TABLE t1 ( `id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, PRIMARY KEY(`id`) ) ENGINE = InnoDB; insert into t1 (id) values (null); select last_insert_id(); Returned value will be ZERO. From MySQL server's command line: mysql> use test; Database changed mysql> CREATE TABLE t1 ( -> `id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, -> PRIMARY KEY(`id`) -> ) ENGINE = InnoDB; Query OK, 0 rows affected (0.05 sec) mysql> insert into t1 (id) values (null); Query OK, 1 row affected (0.03 sec) mysql> select last_insert_id(); +------------------+ | last_insert_id() | +------------------+ | 1 | +------------------+ 1 row in set (0.00 sec)