所以我一直在做一些研究,我需要写一份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(使用前将#替换为@)