gpt4 book ai didi

mysql - 数据库 Upserts - 好的还是坏的做法?

转载 作者:IT老高 更新时间:2023-10-29 00:20:00 27 4
gpt4 key购买 nike

寻找一些关于 Upsert(插入或如果存在,则更新)过程是否被认为是数据库编程中的不良做法的见解。如果有任何相关性,我会在 SQL Server 中工作。

几个月前,在我工作的一个地方,常驻数据库大师在新编写的数据库编码标准(大部分我同意)中指出,应避免使用 Upserts。

我真的看不出这是什么合乎逻辑的原因,并认为我自己合理地意识到了良好的编程实践。我认为它们对于直接的数据管理很有用,并有助于避免过多的存储过程数量。

寻找一些可以帮助我得出结论的见解/讨论。

谢谢。

更新回应评论:

我所指的具体上下文是在数据库中创建或更新域实体数据表示。例如,一个“Person”对象作为数据库中“Person”表的表示存在。我只需要一种创建新 Person 或更新现有 Person 的机制。在这里,我可以选择创建一个 Upsert 存储过程,或者创建两个单独的存储过程 - 一个用于更新,一个用于插入。

在任何人看来有什么优点或缺点吗?

最佳答案

主要问题是在打算添加新记录时覆盖现有记录,因为无论选择什么作为键都是重复的。例如说一个登录名。您会看到登录名存在,因此您应该在应该踢回登录名重复的错误时进行更新。

第二个问题是恢复已删除的记录。假设进程“A”查询记录,进程“B”删除它,然后进程“A”提交更改。原本打算删除的记录现在又回到了数据库中,而不是将异常传递回它已被删除的“A”。

关于mysql - 数据库 Upserts - 好的还是坏的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com