websql INSERT OR IGNORE INTO 数据有则忽略 无则创建

使用INSERT OR IGNORE INTO语句

//插入数据,有则忽略,无则创建

data.forEach(function (item,index) {
	var sql = "INSERT OR IGNORE INTO article(id, title, content, modify_time) VALUES (?, ?, ?, ?);"; 
	app.db.execute(db, sql, [item.id, item.title, item.content, item.modifyTime]);
});


//插入数据,有则替换,无则替换更新

data.forEach(function (item,index) {
	var sql = "INSERT OR REPLACE INTO article(id, title, content, modify_time) VALUES (?, ?, ?, ?);"; 
	app.db.execute(db, sql, [item.id, item.title, item.content, item.modifyTime]);
});


相关js

(function($) {
// web sql
$.db = {};

/**
 * 创建数据库
 * @param {Object} name		数据库名称
 * @param {Object} size		数据库大小
 * @param {Object} version	数据库版本号
 * @param {Object} display	数据库显示名称
 */
$.db.create = function(name, size, version, describe){
	var db_name = name ? name : 'test';
	var db_size = size ? size : 10;
	var version = version ? version : '1.0';
	var describe = describe ? describe : 'test';
	return window.openDatabase(db_name, version, describe, db_size * 1024 * 1024);
};

/**
 * 创建表
 * @param {Object} db	数据库对象
 */
$.db.createTable = function(db) {
	$.db.execute(db, "CREATE TABLE IF NOT EXISTS article(id INTEGER NOT NULL, title TEXT NOT NULL, content TEXT, modify_time DATETIME, UNIQUE (id))");
};

/**
 * 执行sql
 * @param {Object} db 		数据库对象
 * @param {Object} sql		sql语句
 * @param {Object} arg		参数
 * @param {Object} callback	成功的回调函数
 */
$.db.execute = function(db, sql, arg, callback){
	if (!db && !sql) {return;}
	if (!arg) {arg = [];}
	if (!callback) {callback = null}
	var onError = function(tx, err){
		console.log("Error:"+err.message)
	};
	var onSuccess = function(context, results){
		console.log("SQL执行成功");
		if (callback) {
			callback(context, results)
		}
	};
	db.transaction(function (context) {
		context.executeSql(sql, arg, onSuccess, onError);
		console.log("executeSql: "+sql)
	});
};

}(window.app = {}));





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值