`
huibin
  • 浏览: 754280 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

如何在插入数据库后返回增加的唯一ID值

阅读更多

第一:sqlserver数据库

@@IDENTITY表示数据表中唯一的标识!

使用方法是在SQL语句后面加上查询的sql语句即可!

 

  INSERT   INTO   tables   (colum1,colum2)  
  VALUES   ('values1','values')  
  SELECT   @@IDENTITY   AS   'Id'

这样的话,执行完毕后就可以直接使用id作为新的ID值了!

存储过程为

Create procedure insSendmail
(
@UserName varchar(20)
)
as
Declare @ID int
begin transaction
Insert into sendmailbox(username) values(@UserName)
Select @ID=@@IDENTITY
commit transaction
return @ID 

当然还有一种笨办法:很多人就是先求最大的ID值,插入完成后把最大的ID值加1然后返回给用户,但是这个 缺点太明显了,如果有两个用户同时操作的话,系统不是就全乱了!  

第二:MYSQL数据库

mysql的源代码里面,mysql_insert_id是这么定义的
my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql)
{
  return mysql->;last_used_con->;insert_id;
}

MYSQL提供给c++,php等的API一般,有个MYSQL结构体。
结构体里面有insert_id, insert_id的类型 my_ulonglong。 其实就是long long.

每次mysql_query操作在mysql服务器上可以理解为一次“原子”操作, 数据库的写操作常常需要锁表的, 是mysql应用服务器锁表不是我们的应用程序锁表。

使用方法是:select last_insert_id();

很简单,直接读出来,放心吧,不会根 别人的ID混起来的!

分享到:
评论

相关推荐

    mybatis返回插入的id1

    在 MyBatis 框架中,当我们执行一个插入(insert)操作时,有时需要获取新插入记录的自增主键值,例如数据库中的唯一标识 ID。MyBatis 提供了方便的功能来实现这一需求,这主要涉及到 `keyProperty` 和 `...

    插入数据到数据库

    数据库是存储和管理信息的核心工具,对于初学者来说,理解如何向数据库中插入数据是学习数据库操作的基础。本文将深入探讨“插入数据到数据库”的概念、步骤和常见方法。 首先,我们要了解数据库的基本结构。数据库...

    Oracle插入数据时获取自增ID

    这意味着如果你在同一事务中多次插入数据,那么每次插入后都需要分别查询`CURRVAL`来获取刚插入的ID值。 #### 总结 通过序列和触发器,Oracle可以很好地支持在插入数据时自动生成并获取ID的需求。这种方式不仅提高...

    MybatisPlus中插入数据获取主键值示例代码

    在MybatisPlus中,插入数据并获取主键值是一个常见的需求,特别是在需要自增主键或者生成唯一ID的情况下。以下是对这个主题的详细阐述: 首先,我们需要了解MybatisPlus中的插入数据操作。在MybatisPlus中,可以...

    C# 把图片插入到数据库中

    6. **关闭连接**:执行完插入操作后,别忘了关闭数据库连接。 ```csharp conn.Close(); ``` 7. **安全编码**:在实际开发中,必须注意SQL注入等安全问题。使用参数化查询可以有效防止此类攻击。 8. **图片的...

    java使用jdbc插入信息时获取id1

    标题"java使用jdbc插入信息时获取id1"指的是在Java程序中,通过JDBC执行SQL插入语句后,如何获取数据库自动生成的唯一标识符(通常是主键ID)。描述中的"设置成可以获取主键"是关键步骤,这可以通过调用`...

    ASP技术常遇问题解答-如何得到插入一条记录后最新的ID?.zip

    在ASP技术中,开发人员经常遇到的一个问题是:在成功插入一条数据库记录后,如何获取新生成的自动递增ID(通常为主键)。这个ID在许多业务逻辑中扮演着关键角色,例如关联其他数据或作为唯一标识。在ASP.NET后端开发...

    mysql雪花算法生成唯一整型ID主键的实现方法

    最后,在需要生成唯一ID时,我们可以在INSERT语句中调用`nextval`函数,它会返回当前序列的下一个值。例如,将nextval('myseq')插入到数据表中: ```sql INSERT INTO your_table (your_id_column) VALUES (nextval...

    SQL获取刚插入的记录的自动增长列ID的值

    在SQL Server 2005及更高版本中,我们可以使用`OUTPUT`子句来直接获取插入操作后生成的新`id`值。例如: ```sql INSERT INTO TestTable (CreatedDate) OUTPUT inserted.id VALUES (GETDATE()); ``` 这里,`...

    pl/sql数据库学习笔记

    *序列会在新记录插入表中时,生成一个唯一的数学序列 *定义:Create sequence 序列名称 Minvalue 1 Start with 1 Increment by 1 Cache 10 *在插入新记录时,需使用nextval,表示从序列中取回下一个值 八、函数 *...

    获取插入记录ID(2.0)

    `SCOPE_IDENTITY()`返回的是当前作用域内最后由同一连接插入的行的ID,而`@@IDENTITY`则返回整个数据库中最后插入的行的ID,可能会跨多个表。在这里,我们使用`SCOPE_IDENTITY()`,因为它更安全。 ```csharp int ...

    Java实验8 数据库.doc

    10. **数据库设计**: Staff表的设计遵循了基本的数据库设计原则,每个字段都有明确的数据类型,并且id字段被声明为主键,确保了数据的唯一性。 这个实验旨在让学生熟悉Java与数据库的集成,理解SQL语句的执行过程,...

    MyBatis+MySQL 返回插入的主键ID的方法

    在MySQL数据库中,自增主键通常用于标识每条记录的独特性,而在插入新记录后,数据库会自动为这条记录分配一个唯一的主键值。MyBatis提供了方便的方法来获取这个插入后的主键ID,下面我们将详细讲解如何实现这一功能...

    PHP获取MySql新增记录ID值的3种方法

    本文将详细介绍三种在PHP中获取MySQL新增记录ID值的方法,并分析它们的适用场景和潜在问题。 1. **使用SQL查询获取最大ID** 这种方法是通过执行`SELECT MAX(id) FROM table`来获取表中id的最大值。例如: ```php ...

    PHP 取得刚插入数据的ID.rar

    在PHP编程中,当我们在数据库中执行插入操作后,经常需要获取刚刚插入的数据记录的唯一标识,也就是ID。这个ID通常是由数据库自动生成的,比如MySQL中的`AUTO_INCREMENT`字段。本教程将深入探讨如何在PHP中有效地...

    清除SQL数据库里的重复记录

    在SQL数据库中,数据冗余可能会导致一系列问题,如数据不一致、浪费存储空间以及增加维护难度。因此,定期清理重复记录是保持数据库健康的重要环节。本教程将深入讲解如何在SQL数据库中检测并删除重复记录,以确保...

    .net实现oracle数据库中获取新插入数据的id的方法

    在处理.NET应用程序和Oracle数据库的交互时,一个常见的需求是在插入新数据后获取该数据的唯一标识符(ID)。在Oracle数据库中,由于没有内置的自动增长列功能,如SQL Server中的IDENTITY或AUTO_INCREMENT,因此通常...

    java快速ID自增器

    每次获取新ID时,只需要调用`incrementAndGet()`方法,该方法会原子性地增加当前值并返回新的值。 2. **数据库序列**:如果使用的是支持序列的数据库(如Oracle),可以通过建立序列对象并在Java代码中查询来获取新...

    在SQL Server数据库中为标识(IDENTITY)列插入显式值

    在SQL Server数据库中,标识(IDENTITY)列是一种特殊类型的列,它自动为新插入的行生成唯一的整数值。这与Microsoft Access中的“自动编号”字段类似,它们都是设计用来在不需用户干预的情况下为记录分配唯一标识符...

Global site tag (gtag.js) - Google Analytics