我基本上不熟悉SQL,而且锁定很混乱。
我现在困惑的案例涉及如何处理由一组记录描述的项目的编辑/更新。在回写更改时,可能会有比原始更多或更少的记录。
(另外,如果对SQL锁定有任何好的参考,我想知道它。我还没有找到任何东西。)
回复:评论:
我目前正在使用SQL Server,但我希望尽量减少对特定数据库的依赖。
我了解交易,但我不知道如何在这种情况下应用它们,因为在此过程中可能会创建或删除记录。
我是否只是在保存期间锁定父项而不担心组成它的记录?
答案 0 :(得分:2)
您不太可能需要担心手动管理数据库锁定。也许你可以多说一些你想要做的事 - 可能还有一些代码 - 我们可以指出你正确的方向。如果您需要此类帮助,请告诉我们您正在使用的数据库。
如果你只是想找一个开始阅读的地方,我推荐一本或所有这些书:
还有很多很好的在线资源,一旦我理解了你真正需要的东西,我就可以指点你。 FWIW,我提醒SQL初学者不要使用Google搜索来回答他们的SQL和数据库设计问题 - 出于同样的原因,我提醒我不要使用Google来对可能的医疗问题进行自我诊断;你可能会从这次经历中吸取教训,但你几乎肯定也会被许多不必要的小巷所困扰。
祝你好运!答案 1 :(得分:1)
确保关闭自动提交并使用select for update
。语法是db specific.Here是一个例子:
select * from emp where id = 2 for update
答案 2 :(得分:1)
你的问题并不是100%清楚你要做什么。
如果您需要将信息写入多个表格,请使用交易。
更新一个表中的一组记录可以写成单个UPDATE语句,这是原子的。