mysql> SELECT LAST_INSERT_ID(); -> 100
使用这函数向一个给定Connection对象返回的值是该Connection对象产生对影响AUTO_INCREMENT列的最新语句第一个AUTO_INCREMENT值的。这个值不能被其它Connection对象的影响,即它们产生它们自己的AUTO_INCREMENT值。
第二、LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID返回表b中的Id值。
第三、 假如你使用一条INSERT语句插入多个行, LAST_INSERT_ID() 只返回插入的第一行数据时产生的值。其原因是这使依靠其它服务器复制同样的 INSERT语句变得简单
mysql> INSERT INTO t VALUES -> (NULL, ‘Mary’), (NULL, ‘Jane’), (NULL, ‘Lisa’); mysql> SELECT * FROM t; | id | name | +—-+——+ | 1 | Bob | | 2 | Mary | | 3 | Jane | | 4 | Lisa | mysql> SELECT LAST_INSERT_ID(); //关键问题。 | LAST_INSERT_ID() | | 2 |
虽然将3 个新行插入 t, 对这些行的第一行产生的 ID 为 2, 这也是 LAST_INSERT_ID()返回的值。
第四、假如你使用 INSERT IGNORE而记录被忽略,则AUTO_INCREMENT 计数器不会增量,而 LAST_INSERT_ID() 返回0, 这反映出没有插入任何记录。
一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的。
但在多线程情况下,就不行了。
在多用户交替插入数据的情况下max(id)显然不能用。
这就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update操作生成的第一个record的ID。
LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变。
有关mysql数据中LAST_INSERT_ID用法,就介绍这些了,希望对大家有所帮助
相关推荐
Linux 中修改 MySQL 数据文件存放位置 概述 ...修改 MySQL 数据文件存放位置需要我们小心地进行配置文件的修改和目录的更改。通过上述步骤,我们可以成功地将数据文件存放位置修改到新的目录下。
6. **迁移数据文件**:将原数据目录`C:\ProgramData\MySQL\MySQLServer{version}\data`中的所有文件复制到新的数据存储位置`D:\mysqlData`。 7. **重启MySQL服务**:启动MySQL服务,并验证数据是否已经成功迁移到新...
打开这个文件,找到`datadir`选项,它定义了数据文件的默认存储位置。例如: ```ini [mysqld] datadir=C:\ProgramData\MySQL\MySQL Server 5.7\Data ``` 要修改数据文件的位置,你需要将`datadir`的路径更改为你的...
本文将详细介绍如何解决“MySQL修改字符集默认问题”,包括修改步骤、注意事项以及可能遇到的问题及其解决方案。 ### 一、理解MySQL字符集 在深入探讨修改字符集的方法之前,我们首先需要了解MySQL中的字符集概念...
### MySQL通过Data文件夹恢复数据和存储过程的方法 在MySQL数据库管理中,有时我们需要从data文件夹中恢复数据和存储过程。这种情况可能出现在多种场景下,例如:误删除了重要的数据库对象、数据库出现故障需要紧急...
1. **修改datadir**:确保在`my.cnf`中正确更新`datadir`,指向新的`data`目录位置,否则MySQL将无法找到数据文件。 2. **调整innodb_log_file_size**:迁移前后,确保日志文件大小配置的一致性,避免因大小不匹配...
将原有的MySQL数据文件完整地复制到新的存储目录中,包括所有表空间文件、日志文件等。 1. **复制数据文件** ```bash cp -rp /var/lib/mysql /mnt/mysql/mysql ``` 这里的`-r`表示递归复制整个目录,而`-p`则...
在MySQL的管理中,有时出于数据安全、存储空间分配或者备份策略的需求,我们可能需要更改MySQL数据库的默认存储目录。这个过程涉及到多个步骤,并且需要谨慎操作以避免数据丢失。以下是一个详细的步骤指南,用于说明...
MySQL中,数据存储目录是MySQL服务器用来保存数据库文件的位置,包括表定义、数据、索引等。默认情况下,这个目录通常是 `/var/lib/mysql`,但根据系统配置或特定需求,可能需要将其更改到其他位置。以下是一个详细...
### MySQL数据库文件目录更改详尽指南 在管理MySQL数据库时,有时我们可能需要更改数据库文件的存储位置。这可能是为了优化磁盘空间使用、提升性能或是进行数据迁移。以下是一份详细的操作指南,帮助您安全地更改...
在Linux环境下,特别是CentOS 7.6系统中,安装MySQL 5.7.25数据库后,默认的数据文件路径位于/var/lib/mysql。然而,出于安全和管理考虑,通常不建议在根目录下存储大量数据文件。为了改变这个路径,我们可以按照...
更改 MySql 数据库的默认编码格式 ...更改 MySQL 数据库的默认编码格式可以通过修改配置文件、客户端工具和 Web.config 文件中的设置来实现。这将保证我们的应用程序能够正确地读取和写入数据,避免乱码问题的出现。
本篇将详细介绍如何将MySQL数据库的数据存储位置从默认的`/var/lib/mysql`更改为自定义的位置,例如`/home/mysql_data/`。 #### 停止 MySQL 服务 在进行任何数据迁移之前,首要任务是确保MySQL服务已经完全停止。...
1. **创建新的数据存放目录**:首先,在服务器上创建一个新的目录来存放MySQL的数据文件。例如,你可以执行`mkdir -p /data/mysql/var`来创建`/data/mysql/var`目录。 2. **停止MySQL服务**:在进行任何配置更改...
在Linux环境中,MySQL数据库的数据文件默认存放在`/var/lib/mysql`目录下。然而,在某些特定情况下,我们可能需要更改这些数据文件的存放位置,比如为了优化磁盘使用、提高性能或者解决存储空间不足的问题等。本文将...
在实际操作中,我们还需要关注文件系统的权限设置,确保MySQL服务有足够的权限访问和修改数据文件。同时,定期备份数据文件至关重要,以防数据丢失。可以使用`mysqldump`工具生成SQL脚本或者直接复制数据文件进行...
默认情况下,MySQL的数据文件存放于`C:\ProgramData\MySQL\MySQLServer8.0\data`目录下,这可能会占用C盘空间或不符合实际部署需求。因此,本文将详细介绍如何将MySQL 8.0的数据存储路径从C盘迁移至E盘,并解决在此...