Sql 是否有更有效的方法更新/插入表中的行

Sql 是否有更有效的方法更新/插入表中的行,sql,Sql,我想在表中更新或插入一行。我还在WHERE子句中搜索的列上创建了一个索引 我想插入到表中的内容可能已经存在于表中,也可能尚未存在于表中,因此它可能是更新或插入。 因此,首先我定义一个布尔变量,比如“ready_exists”和一个select语句,它去搜索表中的值,如果找到它,它将把布尔变量设置为true,否则它将保持false。 然后我说如果这个变量为真,那么对表运行这个update命令,如果为假,则运行这个insert命令 那么这是正确的方法还是有更好的方法呢 根据您的SQL平台,MERGE

我想在表中更新或插入一行。我还在WHERE子句中搜索的列上创建了一个索引

我想插入到表中的内容可能已经存在于表中,也可能尚未存在于表中,因此它可能是更新或插入。 因此,首先我定义一个布尔变量,比如“ready_exists”和一个select语句,它去搜索表中的值,如果找到它,它将把布尔变量设置为true,否则它将保持false。 然后我说如果这个变量为真,那么对表运行这个update命令,如果为假,则运行这个insert命令

那么这是正确的方法还是有更好的方法呢

根据您的SQL平台,
MERGE
UPSERT


这是一个内部RDBMS。。。例如,没有UPSERT…所以只要想想基本的标准SQL命令。您已经编写了自己的RDBMS吗?你要么是天才,要么是疯子:)为什么不让写这篇文章的人把厄塞特也包括进去?工作完成了。@podiluska:哈哈,不是我。它更像是一种查询语言。这太棒了。我在帮助文件中找到了一个“MERGE”命令。我会起诉的。(这是一个内部RDBMS)