mysql 获取刚插入行id汇总】的更多相关文章

mysql 获取刚插入行id汇总 我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection conn = ;        Serializable ret = null;        PreparedStatement state = .;       …
我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection conn = ;        Serializable ret = null;        PreparedStatement state = .;        ResultSet rs=null…
我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection conn = ;        Serializable ret = null;        PreparedStatement state = .;        ResultSet rs=null…
LAST_INSERT_ID() 自动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCREMENT列设置的第一个表发生的值. MySQL的LAST_INSERT_ID的注意事项: 第一.查询和插入所使用的Connection对象必须是同一个才可以,否则返回值是不可预料的. mysql> SELECT LAST_INSERT_ID(); -> 100 使用这函数向一个给定Connection对象返回的值是该Connection对象产生对影响AUTO_INCREMENT列的最新语…
1. 通过自增的键auto_increment取得. select max(id) from tablename 这样的做法须要考虑并发的情况.须要在事务中对主表加以"X锁",待获得max(id)的值以后.再解锁. 2. 使用select LAST_INSERT_ID() 方法.是线程安全的操作.使用select last_insert_id()时要注意.当一次插入多条记录时,仅仅是获得第一次插入的id值. [自己主动返回最后一个INSERT或 UPDATE 查询中 AUTO_INCR…
二话不说: 1.先建立个表 CREATE TABLE [dbo].[UserInfo](    [ID] [int] IDENTITY(1,1) NOT NULL,    [UserName] [nchar](10) NULL,    [UserPass] [nchar](10) NULL,    [RegTime] [datetime] NULL,    [Email] [nchar](10) NULL,CONSTRAINT [PK_UserInfo] PRIMARY KEY CLUSTERE…
insert into user (username,password) VALUES ('); //获取刚插入的自增长id的值 select last_insert_id(); 在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计中常见的用法.但是在具体生成id的时候,我们的操作顺序一般是:先在主表中插入记录,然后获得自动生成的id,以它为基础插入从表的记录.这里面有个困难,就是插入主表记录后,如何获得它对应的i…
在开发程序中我们经常会遇到两个表或多个表关联同时插入数据的需求. 那么我们刚给主表插入一条数据,接着给副表插入数据时其中一个字段要存储与主表关联的id,那么我们该怎么获取刚插入的那条数据的id呢?  insert infor values('','') ;SELECT @@Identity; 添加语句的后面加上SELECT @@Identity,使用ExecuteScalar()获取返回值 就能直接取到刚插入的数据id…
在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过“select max(id) from tablename”的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以“X锁“,待获得max(id)的值以后,再解锁.     这种做法需要的步骤比较多,有些麻烦,而且并发性也不好.有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作.乍一看,它和select max(id)很象,但实际上它是线程安全的.也就是…
public int insert(String cName, String ebrand, String cGender) { String sql = "insert into Cloth (cname,ebrand,cgender) values(?,?,?) "; Connection conn = DruidUtil.getConn(); PreparedStatement prep = null; ResultSet rs = null ; try { prep = con…
单条数据时model->attributes['id']; 循环插入时使用 Yii::app()->db->getLastInsertID() 获取 循环插入时需要每次插入后重置 model->primarykey =0; 或 model->id = 0;model->setIsNewRecord(true); …
在关系型数据库的表结构中,一般情况下,都会定义一个具有‘AUTO_INCREMENT’扩展属性的‘ID’字段,以确保数据表的每一条记录都有一个唯一标识. 而实际应用中,获取到最近最大的ID值是必修课之一,针对于该问题,实践整理如下: 1.新建测试数据表get_max_id  mysql>CREATETABLE `get_max_id` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '业务主键', `content` char(25…
一.HTML 代码 <table style="width: 100%;"> <tr> <td> <asp:Button ID="Button1" runat="server" Text="选择账号" OnClick="Button1_Click" /> </td> <td> <asp:Button ID="Button…
假设表结构如下: CREATE TABLE TestTable ( id int identity, CreatedDate datetime ) SQL2005获得新增行的自动增长列的语句如下: insert into TestTable (CreatedDate)  output  inserted.id  values (getdate()) output 是sql server2005的新特性,可以从数据修改语句中返回输出,可以看作是“返回结果的DML” 2005之后 Insert,De…
--插入数据,并返回刚刚插入的数据id INSERT INTO [soloreztest] ([name]) output inserted.id VALUES ('solorez') --执行结果: --id ------------- --5 (1 行受影响) 第二种方法:insert into table1 values(colvalue1,colvalue2)select ident_current('table1') 第三种方法:insert into table1 values(co…
$insert_id = $UserModel->attributes['id'];…
SQL Server 2000中,insert数据的时候返回自动编号的id,有三种方法实现SCOPE_IDENTITY.IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值. IDENT_CURRENT :返回为任何会话和任何作用域中的特定表最后生成的标识值.IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表.IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值. @@IDENTITY: 返回为当前会话的所有作用域…
(1)首先 需要创建序列: CREATE SEQUENCE SE_TD_POWER MINVALUE 1 NOMAXVALUE START WITH 1 INCREMENT BY 1 NOCYCLE CACHE 30 / (2)然后 需要创建存储过程, 使插入一条数据 strInsertSQL, 同时查询当前的ID select SE_TD_POWER.currval from dual , /* 存储过程 create or replace procedure PRO_GetInsertedI…
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值.IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表. @@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值. SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值 也许大家对SQL Server中的 @@IDENTITY 都不陌生,都知道它是获取数据表中最后一条插入数据的IDENTITY值.比如,表 A 中有个 ID 为自增1的字段,假设此时 I…
创建一个自定义函数: ; DELIMITER $$ USE `dressv_website`$$ DROP FUNCTION IF EXISTS `fn_QueryRelation`$$ CREATE DEFINER=`sa`@`%` FUNCTION `fn_QueryRelation`(AreaId INT,Relation TINYINT()) RETURNS VARCHAR() CHARSET utf8 BEGIN DECLARE sTemp VARCHAR(); DECLARE sTe…
create procedure sp_AddUser1@Name nvarchar(200), @Remark nvarchar(200),@Flag int as begin declare @id int insert into User(Name,Remark,Flag) values(@Name, @Remark,@Flag)set @id = scope_identity()update User set Sort=@id where ID=@idend create procedu…
在此记录备忘. CREATE TABLE tb_test(custid INT IDENTITY(1,1) NOT NULL , name nvarchar(200) NOT NULL) DECLARE @cid TABLE(cid INT) DECLARE @c2 INT INSERT INTO tb_test(name) OUTPUT INSERTED.custid INTO @cid VALUES('a') SELECT * FROM @cid c DROP TABLE tb_test…
SCOPE_IDENTITY()函数 返回的是紧跟这个插入语句生成的自增ID, 若果前一个语句不是插入自增ID的,将返回NULL @@IDENTITY 返回全局的最有一个生成的自增ID,全局可用 create table test( id int identity ,v int ) insert into test(v)values(1) select SCOPE_IDENTITY() SELECT @@IDENTITY 结果 Note 有的地方喜欢使用 output inserted.tab_…
通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键.本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_INSERT_ID()函数 通过SQL @@IDENTITY 变量 1. 通过JDBC2.0提供的insertRow()方式 自jdbc2.0以来,可以通过下面的方式…
转自:http://blog.csdn.net/ultrani/article/details/9351573 作者已经写的非常好了,我不废话了,直接转载收藏: 通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键.本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_IN…
@@IDENTITY 返回最后一个插入 IDENTITY 的值,这些操作包括:INSERT, SELECT INTO,或者 bulk copy.如果在给没有 IDENTITY 列的其他表插入记录,系统将其置为 null.如果有多行记录插入到 IDENTITY 表中,@@IDENTITY 表示最后一个产生的值.如果触发了某个触发器,并且这个触发器执行向另一个带有 IDENTITY 列的表的插入操作,@@IDENTITY 将返回这个由触发器产生的值.如果这个触发器插入的表中不包含 IDENTITY…
MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java package cn.com.zfc.model; public class User { private Integer id; private String name; private String password; public Integer getId() { return id; } public void s…
LAST_INSERT_ID 自动返回最后一个 INSERT 或 UPDATE 操作为 AUTO_INCREMENT 列设置的第一个发生的值. 参考这里 The ID that was generated is maintained in the server on a per-connection basis. LAST_INSERT_ID是基于单个connection的, 不可能被其它的客户端连接改变. 可以用 SELECT LAST_INSERT_ID(); 查询LAST_INSERT_I…
解决方法如下: Use the OUTPUT functionality to grab all the INSERTED Id back into a table. 使用output 功能获取所有插入的id,然后插入一个表中 注:如果不想用批量插入id做关联的其他业务逻辑,而只是简单的返回给前台,那么可以直接使用output功能返回这些id,不需要插入表. DECLARE @tmpTable TABLE ( Iden INT IDENTITY(1,1), ColumnName VARCHAR(…
单个: <insert id="create" parameterType="com.dto.Cou" useGeneratedKeys="true" keyProperty="id"> insert into t ( batch_number ) values ( #{batchNumber,jdbcType=VARCHAR} ) </insert> 通过 对象. get获取 批量插入 <ins…