BGFMDB icon indicating copy to clipboard operation
BGFMDB copied to clipboard

设置联合主键后,每次启动都会将表复制两遍。

Open yi95302 opened this issue 6 years ago • 3 comments

BGDB.m 1539-1551行,获取表格所有列名 有bug。

设置联合主键后,创建表执行的sql,类似如下: CREATE TABLE TestModel (BG_bg_id integer,BG_bg_createTime text,BG_bg_updateTime text,BG_name text,BG_layerID text,primary key (BG_name,BG_layerID)) 按上述代码解析出一个列名为 primary。

model中没有primary属性,字段发生改变,刷新数据库.(发生两次数据库copy操作)。

每次打开app,都会发生两次数据库copy操作。

yi95302 avatar Feb 21 '19 09:02 yi95302

测试文件:

#import <Foundation/Foundation.h> #import "BGFMDB.h" NS_ASSUME_NONNULL_BEGIN

@interface TestModel : NSObject @property (nonatomic,copy) NSString *name; @property (nonatomic,copy) NSString *layerID; @end

NS_ASSUME_NONNULL_END

#import "TestModel.h"

@implementation TestModel +(NSArray *)bg_unionPrimaryKeys{ return @[@"name",@"layerID"]; } @end

yi95302 avatar Feb 21 '19 09:02 yi95302

我这联合主键 也有问题

54dujianchao avatar Mar 06 '19 02:03 54dujianchao

我这边使用下载的Demo。 联合主键设置后,将[p bg_save];改为[p bg_saveOrUpdate]; 第一次启动App后数据库文件大小为2.8M,第二次启动App后数据库文件大小为5.5M,我感觉这个是有问题的。 (注:如果不启用联合主键,而是启用唯一约束,则两次启动App后数据库文件大小均为2.8M,此时正确)

leblanc-zx avatar Apr 01 '19 06:04 leblanc-zx