使用LKDBHelper 插入相同id时候应该是更新数据而不是插入新的数据

要实现使用LKDBHelp 插入相同id时候应该是更新数据而不是插入新的数据

例如#import "JSONModel.h"

@interface InfoModel : JSONModel

@property (nonatomic,copy)NSString *name;

@property (nonatomic,copy)NSString *age;

@property (nonatomic,copy)NSString *sex;

@property (nonatomic,copy) NSString *vid;

@end

#import "InfoModel.h"

@implementation InfoModel

// DB

// 修改主键

+(NSString *)getPrimaryKey

{

return @"vid";

}

// 表名

+(NSString *)getTableName

{

return@"InfoModel";

}

// 表版本

+(int)getTableVersion

{

return 1;

}

@end

时间: 2024-10-11 16:57:47

使用LKDBHelper 插入相同id时候应该是更新数据而不是插入新的数据的相关文章

MyBatis插入数据之后返回插入记录的id

MyBatis插入数据的时候,返回该记录的id <insert id="insert" keyProperty="id" useGeneratedKeys="true"? parameterType="com.demo.domain.CountRateConfig">? insert into query_rate_config (code,partner_type,search_count, booking_co

MSSQL获取当前插入的ID号及在高并发的时候处理方式

SQL Server 2000中,insert数据的时候返回自动编号的id,有三种方法实现SCOPE_IDENTITY.IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值. IDENT_CURRENT :返回为任何会话和任何作用域中的特定表最后生成的标识值.IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表.IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值. @@IDENTITY: 返回为当前会话的所有作用域

mysql 获取刚插入行id汇总

mysql 获取刚插入行id汇总 我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection conn = ;        Serializable ret = null;        PreparedStatement state = .;       

Mysql批量插入返回Id错乱(原因分析)

在项目中经常会有如下场景: 往数据库中批量插入一批数据后,需要知道哪些插入成功,哪些插入失败了. 这时候往往会有两种思路,一个是在插入之前判断相同的记录是否存在,过滤掉重复的数据:另外一种就是边插入边判断,动态过滤. 第一种方式对于数据量过大的情况并不适用,为了采用第二种方法,我们使用了"Mybatis批量插入返回自增主键"的方式进行处理. mysql插入操作后返回主键是jdbc的功能,用到的方法是getGeneratedKeys()方法,使用此方法获取自增数据,性能良好,只需要一次交

mysql数据库新插入数据,需要立即获取最新插入的id

在MySQL中,使用auto_increment类型的id字段作为表的主键.通常的做法,是通过"select max(id) from tablename"的做法,但是显然这种做法需要考虑并发的情况,需要在事务中对主表以"X锁",待获得max(id)的值以后,再解锁. 这种做法需要的步骤比较多,有些麻烦,而且并发性也不好.有没有更简单的做法呢?答案之一是通过select LAST_INSERT_ID()这个操作.乍一看,它和select max(id)很象,但实际上

多张表中数据组合后插入新表的方法

以mysql为例. 遇到这个问题的时候最先想到的方法就是先从各个表中查询出相应的数据后使用程序循环遍历组装后在插入到数据库中.这是最直观的解决办法,但是这个方法处理超大结果集的时候就出现问题,例如:超出内存限制,运行时间过长等等... 这时使用另外一种方法应该会有帮助,那就是使用mysql的on duplicate key update方法来分步骤组合数据. 现在有3张表a,b,c.每个表的结构如下: a表包含字段:id,a,b,c: b表包含字段:aID,d,e,f:字段aID对应表a中的id

AGS中通过FeatureServer插入数据失败、插入数据在WMTS请求中无法显示以及version概念的讨论

1.背景 在多个项目中,当我方接口给其他部门人员使用时出现了插入数据失败或者插入的数据在WMTS请求中无法显示出来的问题.针对这些问题,我在这篇文章中,将详细描述造成以上问题的原因.在此WebGIS产品的前台和后台接口中,此插入数据核心部分均是FeatureServer请求.所以我们首先对FeatureSever服务做一个大致的了解. 2.FeatureServer服务的大致了解 2.1 FeatureServer服务提供的功能 FeatureServer服务可以提供如下几种服务: 我们可以得出

使用PreparedStatement向数据表中插入、修改、删除、获取Blob类型的数据

Blob介绍 BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是个类型系列,包括:TinyBlob.Blob.MediumBlob.LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同. MySQL的四种BLOB类型 类型       大小(单位:字节) TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G Oracle LOB介绍 LOB,即Large Objects(大对象),是用来存储大量的二

我们在删除SQL Sever某个数据库表中数据的时候,希望ID重新从1开始,而不是紧跟着最后一个ID开始需要的命令

一.如果数据重要,请先备份数据 二.删除表中数据 SQL: Delete From ('表名')  如:Delete From abcd 三.执行新语句 SQL: dbcc checkident('表名',reseed,0) 如:dbcc checkident('abcd',reseed,0) 注: { DBCC CHECKIDENT ('table_name', RESEED, new_reseed_value) 检查指定表的当前标识值,如有必要,还对标识值进行更正. } 这样操作后,新插入的