1. 1var sqlite3 = require('..');
2. 1var assert = require('assert');
3. 1
4. 1describe('query properties', function() {
5. 1 var db;
6. 1 before(function(done) {
7. 1 db = new sqlite3.Database(':memory:');
8. 1 db.run("CREATE TABLE foo (id INT PRIMARY KEY, count INT)", done);
9. 1 });
10. 1
11. 0 (sqlite3.VERSION_NUMBER < 3024000 ? it.skip : it)('should upsert', function(done) {
12. 1 var stmt = db.prepare("INSERT INTO foo VALUES(?, ?)");
13. 1 stmt.run(1, 1, function(err) { // insert 1
14. 0 if (err) throw err;
15. 1 var upsert_stmt = db.prepare("INSERT INTO foo VALUES(?, ?) ON CONFLICT (id) DO UPDATE SET count = count + excluded.count");
16. 1 upsert_stmt.run(1, 2, function(err) { // add 2
17. 0 if (err) throw err;
18. 1 var select_stmt = db.prepare("SELECT count FROM foo WHERE id = ?");
19. 1 select_stmt.get(1, function(err, row) {
20. 0 if (err) throw err;
21. 1 assert.equal(row.count, 3); // equals 3
22. 1 });
23. 1 })
24. 1 });
25. 1 db.wait(done);
26. 1 });
27. 1});
28. 1