我是利用
atabase_manager.save_bar_data(data) 存储 从交易所 获取的bar 的历史 来存储到数据库里的 删除最后的一个bar 避免存储交易所还在完成中的bar
发现调用后它不管是否之前存在 它都会吧拿到的全部存储
怎么避免重复存储 调用了 atabase_manager.save_bar_data(data) 几次后 如下图就存储了几次
代码
self.class_bar.save_all(ds)
后跟踪到
DbBarData.insert_many(
c).on_conflict_replace().execute() 里面
后面的就完全看不怎么懂了
问下 怎么避免存储重复存储
想从数据库里 去限制
CREATE TABLE dbbardata
(
id
int(11) NOT NULL,
symbol
varchar(10) NOT NULL DEFAULT '',
exchange
varchar(10) NOT NULL DEFAULT '',
datetime
datetime NOT NULL,
interval
varchar(10) NOT NULL DEFAULT '',
volume
float DEFAULT NULL,
open_interest
float DEFAULT NULL,
open_price
float DEFAULT NULL,
high_price
float DEFAULT NULL,
low_price
float DEFAULT NULL,
close_price
float DEFAULT NULL,
PRIMARY KEY (symbol
,exchange
,datetime
)
) ENGINE=MyISAM AUTO_INCREMENT=19001 DEFAULT CHARSET=utf8;
达到了 symbol,
exchange,
datetime 几个组合唯一性 但是又失去了id 的自增
求大神帮解决