BGFMDB
BGFMDB copied to clipboard
设置联合主键后,每次启动都会将表复制两遍。
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操作。
测试文件:
#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
我这联合主键 也有问题
我这边使用下载的Demo。 联合主键设置后,将[p bg_save];改为[p bg_saveOrUpdate]; 第一次启动App后数据库文件大小为2.8M,第二次启动App后数据库文件大小为5.5M,我感觉这个是有问题的。 (注:如果不启用联合主键,而是启用唯一约束,则两次启动App后数据库文件大小均为2.8M,此时正确)