V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
rimutuyuan
V2EX  ›  问与答

SQL 中插入唯一约束可能冲突的记录,是先查询判断有无还是保存时判断 duplicate 错误。

  •  
  •   rimutuyuan · 2020-01-02 13:03:25 +08:00 · 1305 次点击
    这是一个创建于 1813 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先查询的话会多一次操作,但是比较优雅。
    实际应用中各位倾向于使用哪一种。
    5 条回复    2020-01-03 19:05:49 +08:00
    imicksoft
        1
    imicksoft  
       2020-01-02 13:39:54 +08:00
    字段少用 insert into duplicate
    optional
        2
    optional  
       2020-01-02 13:42:35 +08:00   ❤️ 1
    和 go 那样调用一个 api 先 if err 一样叫『优雅』?
    最重要的是你怎么保证你查询完后其它进程不会比你先插入?
    THESDZ
        3
    THESDZ  
       2020-01-02 17:09:29 +08:00
    实际应该业务上(代码逻辑上)避免吧。。。
    然后不允许并发的业务应该有锁控制
    FaceBug
        4
    FaceBug  
       2020-01-03 08:55:04 +08:00
    我一直没用后者,因为后者会造成自增不连续,没啥影响就是看的不爽
    lucifer1108
        5
    lucifer1108  
       2020-01-03 19:05:49 +08:00
    第一个无法保证唯一性的.还是会在插入的时候报错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2458 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:51 · PVG 23:51 · LAX 07:51 · JFK 10:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.