插入 SQL 数据库之前检查重复项

2024-01-08

所以我一直在做一些研究,我需要写一份INSERT语句将唯一的客户端名称插入到我的服务器上的表中。然而,数据库的默认标准已经有数千个客户端,当插入新客户端时,我们需要在尝试将其添加到系统之前检查它们是否已经存在。

我的问题是最好/最快的方法是什么?在clients表上运行一个简单的选择查询(按ASC排序),并对结果进行二分搜索或其他操作,或者只进行类似于下面的SQL查询,会更好吗?

IF NOT EXISTS (SELECT 1 FROM clients AS c WHERE c.clientname = ?)
BEGIN
  INSERT INTO clients (clientname, address, ...)
  VALUES (?, ?, ...)
END

这是一个缓慢的陈述吗?每次提交我可能需要运行插入数百次。


如果您希望给定列是唯一的,标准建议是创建 UNIQUE 约束。

ALTER TABLE clients ADD UNIQUE KEY (clientname);

然后尝试进行INSERT,如果没有匹配的行则成功,如果有重复则失败。不需要选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

插入 SQL 数据库之前检查重复项 的相关文章

  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td
  • SQL Server 标识列值从 0 而不是 1 开始

    我遇到了一个奇怪的情况 数据库中的某些表的 ID 从 0 开始 即使 TABLE CREATE 的 IDENTITY 1 1 也是如此 对于某些表来说是这样 但对于其他表则不然 它一直有效到今天 我尝试过重置身份列 DBCC CHECKID
  • SQL Server查询麻烦,多对多关系

    不知道如何用一行字来表达这个问题 对标题表示歉意 我的数据库中有3个表 例如 Shop Item 商店库存 Shop 和 Item 具有多对多关系 因此 ShopStock 表将它们链接起来 ShopStock 中的字段是 ID ShopI
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • 将子查询的结果插入表中并带有常量

    相关表格的概要如下 我有一个表 我们称之为联接 它有两列 都是其他表的外键 我们将这两列称为 userid 和buildingid 因此 join 看起来像 join userid buildingid 我基本上需要在这个表中插入一堆行 通
  • 如果外键不存在,则添加外键约束(或者如果存在则删除外键约束)而不使用名称?

    我发现创建查询很困难 假设我有一个产品和品牌表 我可以使用此命令添加外键 ALTER TABLE Products ADD FOREIGN KEY BrandID REFERENCES Brands ID 但我只需要在外键不存在时运行此命令
  • SQL Server 之间

    我有一个表 其中有年 月和一些数字列 Year Month Total 2011 10 100 2011 11 150 2011 12 100 2012 01 50 2012 02 200 现在 我想要SELECT2011 年 11 月至
  • 如何通过Object Id和Column Id查询表数据?

    有桌子Clients PK LastName Name Address 1 Vidal Arturo St 2 Lavezzi Ezequiel St 3 Cuadrado Guillermo St 我想得到 通过以下查询 我可以得到前四列
  • SQL 用新值替换旧值

    我有一个名为tbl Products 其中有一列名为articlenumber并且充满了像这样的数字s401 s402 etc 我生成了一个包含新商品编号的列表 它将替换旧的商品编号 s401 I00010 s402 I00020 s403
  • 删除原始数据中部分重复的记录

    我需要删除表中时间间隔为 1 或 2 分钟或相同且必须相同的所有记录ID但保留第一个记录 ID Time SN SD WE FW 10 2014 06 30 19 17 37 000 I 0 100 0 10 2014 06 30 19 1
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 获取查询的行号

    我有一个查询将返回一行 当表排序时 有什么方法可以找到我正在查询的行的行索引吗 我试过了rowid但当我期待第 7 行时却得到了 582 Eg CategoryID Name I9GDS720K4 CatA LPQTOR25XR CatB
  • 如何检测 Postgres 中持有锁的查询?

    我想不断跟踪 postgres 中的互锁 我碰到锁具监控 https wiki postgresql org wiki Lock Monitoring文章并尝试运行以下查询 SELECT bl pid AS blocked pid a us
  • 从存储过程中的动态 SQL 获取结果

    我正在编写一个存储过程 需要在过程中动态构造 SQL 语句以引用传入的表名称 我需要让这个 SQL 语句返回一个结果 然后我可以在整个过程的其余部分中使用该结果 我尝试过使用临时表和所有内容 但我不断收到一条消息 提示我需要声明变量等 例如
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 使用MySQL计算单个表中借方和贷方的余额

    下面的 MySQL 表包含带有关联金额的借方或贷方 操作 如何选择具有非零 余额 的所有 CLIENT ID 我尝试将表连接到自身以计算所有借方和贷方总额 但有些东西无法正常工作 CLIENT ID ACTION TYPE ACTION A
  • 将多行合并为一行并根据行数附加列

    我正在尝试将同一个表的多行合并为一个 我有一个像这样的示例表 Col1 Col2 Col3 Col4 Col5 Col6 1 BH1 CB 12 CC CC Conveyor Mal 1 BH1 CB 104 ZC ZC Full Emp
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • 在存储过程结束时显式删除本地临时表有什么好处?

    考虑以下伪 T SQL 代码 由存储过程执行 CREATE TABLE localTable
  • 累计非重复计数

    我正在查询每天获取 uid 的累计不同计数 示例 假设有 2 个 uid 100 200 出现在日期 2016 11 01 并且它们也在第二天出现 新的 uid 300 100 200 300 出现在 2016 11 02 此时我希望商店累

随机推荐

  • 从视频重建 3D 轨迹(由单个摄像机拍摄)

    我目前正在尝试根据 iPhone 视频中拍摄的一系列图像重建球或岩石等下落物体的 3D 轨迹 我应该从哪里开始寻找 我知道我必须校准相机 我想我会使用 Jean Yves Bouguet 的 matlab 校准工具箱 然后从相同的序列中找到
  • 使用Websocket和Pusher显示连接用户登录状态

    我第一次使用 Pusher 构建聊天室 Web 应用程序 我阅读了很多 Pusher 的文档来了解它是如何工作的 我的问题更多是关于机制而不是代码 所以我想做的是 当用户连接并加入presence channel这使我可以显示谁在线 我想为
  • 管道输出用作 Linux 上 grep 的搜索规范

    如何通过管道将 grep 的输出作为另一个 grep 的搜索模式 举个例子 grep
  • 如何将提交从一个分支复制到另一个分支

    我正在开发两个功能 共享 提交 A B C Feat1 共享 提交 D E F Feat2 问题是 为了测试 Feat2 我确实也需要 Feat1 但我仍然希望它们作为单独的分支 因为它们是不同的 有什么好方法可以对 Feat2 进行更改
  • 如何在 SQL Server 2008 中检索删除的存储过程、函数、表

    我验证了下面的链接 因为有人 Oliver 作为我的问题的重复项发布了 但此查询返回最后执行的脚本 这与我的问题无关 最后执行的特定数据库查询 https stackoverflow com questions 13638435 last
  • 有效地随机化(洗牌)Sql Server 表中的数据

    我有一个表格 其中包含必须随机化的数据 通过随机化 我的意思是使用随机行中的数据来更新同一列中的另一行 问题是表本身很大 超过 2 000 000 行 我写了一段使用 while 循环的代码 但是速度很慢 有人对实现随机化的更有效方法有什么
  • Gson java.text.ParseException:无法解析的日期

    我使用 Gson 反序列化 json 时遇到异常 java text ParseException Unparseable date 2011 10 19T23 30 00 04 00 23 30 00 部分对我来说确实很奇怪 这是无效日期
  • ionic 4 中的(按键)事件未触发

    根据这个链接https ionicframework com docs api input events https ionicframework com docs api input events离子载体keypress事件在浏览器中工作
  • 运算符重载允许使用右值捕获但不能分配给

    是否可以设计以及如何重载operator 为我的班级C使这成为可能 C c c1 c2 但这是不可能的 c1 c2 something 编辑 我把物体改成了小写字母 c1 c2 and c是类的对象C 不符合逻辑operator 而是一个右
  • Hibernate 带注释的类中使用的“目录”是什么? [复制]

    这个问题在这里已经有答案了 在 Java 类中我看到了以下内容 Table name user catalog users 它的用途是什么 From 维基百科 http en wikipedia org wiki Database cata
  • 反转 ClientDataSet 索引的顺序

    我想反转 TClientDataSet 中索引的顺序 下面的代码看起来应该可以解决问题 但什么也没做 有没有一种好方法来反转索引的顺序 procedure TForm8 Button1Click Sender TObject var ind
  • VB.net,如何按值对集合项进行排序

    如何在 VB NET 中按值对集合项进行排序 我想对此进行排序 Dim col as Collection New Collection col Add b b1 col Add a a1 col Add d d1 就像 Krishnadd
  • Google Maps JS v3:地图显示:无;地图初始化后导致地图损坏

    This当然涉及到之前有关初始化期间地图显示的问题 然而 这里的问题是在地图应该已经初始化之后 地图显示被设置为无 我的 widow onload 的最后一行设置要显示的地图 none 那时地图初始化应该已经完成 但事实仍然是 最终的调用导
  • 使用 JSON 将嵌套对象发布到 Spring MVC 控制器

    我有一个控制器 其 POST 处理程序定义如下 RequestMapping value ajax saveVendor do method RequestMethod POST public ResponseBody AjaxRespon
  • Dask 分布式工作线程在运行许多任务时总是会泄漏内存

    有哪些策略可以解决或调试这个问题 distribution worker 警告 内存使用率很高 但工作线程没有数据可存储到磁盘 也许其他进程正在泄漏内存 进程内存 26 17 GB 工作内存限制 32 66 GB 基本上 我只是在一台机器上
  • Ember.Object 实例中必需的属性(构造函数参数)

    在 Ember 中 假设我有一个名为FoodStuff它有几个属性 export default Ember Object extend name null REQUIRED Slice of Apple Pie calories null
  • 使用 jQuery 使用 WCF 服务

    到目前为止 我已经使用了 Web 服务 并且运行良好 我添加了一个新的 WCF 服务 我正在使用 jQuery 调用服务 这就是我使用 jQuery 来使用 Web 服务的方式 ajax dataType json processData
  • 如何在reducer中处理redux-form/CHANGE

    推荐的处理方式是什么redux form CHANGE动作由 redux form 调度 我有自己的减速器来管理此表单的状态 但我不确定是否最好执行以下操作 export default reducer state initialState
  • WHOIS 命令未返回有用信息?

    如今 每当您使用 WHOIS 命令时 都不会返回任何有用的信息 我通常必须去 Godaddy Dnsstuff 或其他服务来获取数据 据我了解 原因主要是由于垃圾邮件 我只是想知道其他服务如何获取这些数据 他们使用不同类型的 WHOIS 命
  • 插入 SQL 数据库之前检查重复项

    所以我一直在做一些研究 我需要写一份INSERT语句将唯一的客户端名称插入到我的服务器上的表中 然而 数据库的默认标准已经有数千个客户端 当插入新客户端时 我们需要在尝试将其添加到系统之前检查它们是否已经存在 我的问题是最好 最快的方法是什