首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQLite和Javascript :在插入或让SQLite抛出异常之前检查数据的存在

SQLite和Javascript :在插入或让SQLite抛出异常之前检查数据的存在
EN

Stack Overflow用户
提问于 2009-04-06 08:51:36
回答 1查看 2.2K关注 0票数 2

我的主要问题是哪种方法更快。

一些简报

我正在使用Mozilla开发一个应用程序。

我有一个模块,可以捕获一些数据并将其存储在数据库中。这些数据是断断续续的。不应储存副本。为了便于讨论,我们可以假设一个只有一个列的表,让我们将该列命名为‘关键字’。因此,如果我们得到一个关键字,已经在数据库中,我们不会再存储它。是的,我们已经将这个列设置为主键,并使它成为唯一的。:)

我的查询是:

1)在将这些新数据插入数据库之前,是否应该执行DB调用并检查关键字是否存在;如果不存在,则将其放入DB中吗?类似于:

代码语言:javascript
复制
function insert_keyword(keyword)
{
   if(!SQL.exists(keyword))
   {
       SQL.insert(keyword);
   } 
}

2)我只需插入并让数据库处理该条件,有效地让它抛出异常,这是我捕捉到的。

代码语言:javascript
复制
function insert_keyword(keyword)
{
    try {
       SQL.insert(keyword);
    }
    catch (e)
    {
       // keyword exists!
    }
}

我知道,抓住一个例外,什么也不做是不好的!所以,我不是在寻找什么是好的,什么是坏的:)。我想了解的是,哪种方法是最快的。(特别是关于Mozilla、JavaScript和SQLite,但欢迎一般性评论!)

Sidenotes:我使用的 SQL.语法只是为了说明。您可以假设我创建了SQL语句,执行它们并获取结果,或者假设它是一个JavaScript库调用,它执行所有的脏工作。

这个问题有点像这个问题:

是在代码中检查DB约束,还是捕获由DB引发的异常?

但我想具体地理解与性能相关的差异,因为我正在开发的应用程序需要尽可能快(哪个应用程序不需要?;)

EN

回答 1

Stack Overflow用户

发布于 2009-04-06 08:56:17

不确定这个问题的mozilla/javascript部分的具体内容,但还有第三个选项“插入或替换”。它可以在不重复的情况下完成所需的任务,并在行已经存在的情况下消除签入代码的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/720656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档