您的位置
主页 > 网站技术 > 数据库 > » 正文

与MSSQL对比学习MYSQL的心得(六)--函数(5)

来源: 锦尚中国 点击:


 
 可以看到,一次插入一条记录时,返回值为最后一条插入记录的ID值

(2)一次同时插入多条记录

 接下来,向表中插入多条记录

INSERT INTO worker VALUES(NULL,'kevin'),(NULL,'michal'),(NULL,'nick')

查询已经插入的记录

SELECT * FROM worker

可以看到最后一条记录的ID字段值为5,使用LAST_INSERT_ID()查看最后自动生成的ID值

SELECT LAST_INSERT_ID()

结果显示,ID字段值不是5而是3,这是为什麽呢?

在向数据表插入一条记录时,LAST_INSERT_ID()返回带有AUTO_INCREMENT约束的字段最新生成的值2;继续向表

中同时添加3条记录,这时候因为当使用一条INSERT语句插入多个行时,LAST_INSERT_ID只返回插入的第一行数据

时产生的值,在这里为第3条记录。之所以这样,是因为这使依靠其他服务器复制同样的INSERT语句变得简单

TIPS:LAST_INSERT_ID是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID返回表b中的ID值

这里跟SQLSERVER不一样

使用下面脚本来测试,无论使用方式一还是方式二,当前的LAST_INSERT_ID都是最后一个值

CREATE TABLE [dbo].[aaa]( [a] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [name] [nvarchar](50) NOT NULL ) ON [PRIMARY]




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明