JS SQLITE,读取一个数据库并写入另一个数据库
JS SQLITE, read one database and write to another
我有以下函数,它从一个数据库读取大约15,000行,格式化数据并写入另一个数据库。当前执行该操作大约需要6秒。有没有一种方法可以做到这一点,而不使用javascript格式化数据,只是使用sqlite查询?或者用其他方法加快速度?
感谢 var events = db.open(events.sqlite3);
function updateTimetable() {
var rows = users.execute("SELECT id, complete, strftime('%s000',time) AS realTime, strftime('%H:%M',time) AS Time FROM exerciseLists WHERE patientId = ? ORDER BY time ASC", Alloy.Globals.currentUser);
events.execute("DELETE FROM Events");
events.execute('BEGIN');
while (rows.isValidRow()) {
var colorType;
var active;
var time = rows.fieldByName('Time');
var realTime = rows.fieldByName('realTime');
var now = new Date().getTime();
if (realTime < now) {
colorType = 'red';
active = 'no';
} else {
colorType = 'blue';
active = 'no';
};
if (rows.fieldByName('complete')) {
colorType = 'yellow';
}
if (Alloy.Globals.sessionButton.button.sessionId === rows.fieldByName('id')) {
colorType = 'green';
active = 'yes';
}
function pad(n) {
return n < 10 ? '0' + n : n
}
var d = new Date(parseInt(realTime));
var dYear = d.getFullYear();
var dDay = pad(d.getDate());
var dMonth = pad(d.getMonth()+1);
var dHour = pad(d.getHours()+1);
var dMinute = pad(d.getMinutes()+1);
var dFinal = dYear + "-" + dMonth + "-" + dDay + " " + dHour + ":" + dMinute;
events.execute("INSERT INTO Events (title, date_start, date_end, note, location, identifier, type, attendees, organizer) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", time, dFinal, '(null)', rows.fieldByName('id').toString(), colorType, rows.fieldByName('id').toString(), active, '(null)', '(null)');
rows.next();
}
rows.close();
events.execute('COMMIT');
Alloy.Globals.refreshTimetable();
};
将一个数据库连接到另一个数据库,然后使用INSERT ... SELECT ...
:
ATTACH 'users.sqlite' AS users_db;
INSERT INTO Events (title, date_start, date_end,
note, location, identifier,
type, attendees, organizer)
SELECT strftime('%H:%M', time),
strftime('%Y-%m-%d %H:%M', time),
'(null)', -- why not NULL?
id,
CASE WHEN id = ? /* sessionId */ THEN 'green'
WHEN complete THEN 'yellow'
WHEN time < CURRENT_TIMESTAMP THEN 'red'
ELSE 'blue'
END,
id,
CASE WHEN id = ? /* sessionId */ THEN 'yes'
ELSE 'no'
END,
'(null)',
'(null)'
FROM users_db.exerciseLists
WHERE patientId = ?
ORDER BY time;
相关文章:
- 解析云代码作业:删除在数据库中已经存在一个小时的行
- 当张贴到数据库时,I'我得到了一个“;可以't在它们被发送错误之后设置报头”;
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- 为什么我从一个空的mongodb数据库中获取数据
- SuiteScript:如何有一个自定义的数据字段来从数据库加载信息
- 如何根据 jsp 中数据库中的值在下拉列表中选择一个值
- 两个服务器可以访问一个公共的mongoDB数据库吗?
- 如何使用一个代码库在线和离线访问 HTML5/JS 应用程序中的数据库
- HTML5数据库保存了详细信息以及一个按钮
- 从另一个选择框并使用数据库连接填充选择框
- 我有一个mysql的输入文本字段.那么,如何通过ajax从数据库中输出json表呢
- 检测圆圈内的标记gmap3,只返回数据库中的最后一个标记
- Rails——在每个数据库条目中运行一个javascript
- 为什么我可以添加一个新主题,但我可以't向SQLite数据库添加新注释
- 我想单击一个
- 并获取 id 以通过 POST 将其插入数据库,可以吗?
- 将数据库存储/备份到一个文件中,IndexeDB、WebSQL和SQLlite的区别
- 我想显示数据库中的数据.如果我们新添加一个表单数据,我想附加显示的新帖子而不使用代码点火器刷新
- 如何使用 html 表单中的一个文本字段来搜索数据库表中的任何列
- 如何为每个 Web 套接字仅使用一个数据库连接
- 2个安卓应用程序的数据库(一个Java,另一个Javascript)