小编sar*_*off的帖子

PostgreSQL 没有指定 COLLATION 的默认行为是什么?

如果我不在外部指定排序规则,PostgreSQL 的默认行为是什么?主要问题之一,是否区分大小写?

postgresql collation

4
推荐指数
1
解决办法
1545
查看次数

长时间运行的 SELECT 查询失败,因为 SQL SERVER 上的 DELETE 导致死锁受害者 - 为什么,以及如何避免这种情况?

首先 1 个线程从表中选择大量数据。

然后,在 SELECT 查询尚未完成之前,另一个线程从该表中删除数据。

它导致 SELECT 查询失败,错误 errorCode=1205 sqlState=40001 和发生死锁的消息。

我认为第二个事务必须等到第一个事务完成,或者第一个事务必须在没有第二个事务所做更改的情况下返回数据。我怎样才能避免这种情况?

我无法改变交易的顺序或以某种方式控制它们(应用程序的用户很多,他们可以随时以任何顺序做任何他们想做的事情)。为什么会发生?

查询是这样的(我对它们进行了一些混淆):

SELECT distinct P.pID, (LastNAME+' '+FirstName+' '+SurName) as NAME, 'person' as Type, CA.OrgName, PC.personemail as Email
FROM Persons P
INNER JOIN WORK PW ON (P.mainwork = PW.pwId)
INNER JOIN CONTACT PC ON (PC.pID = P.pID)
LEFT OUTER JOIN ORG CA ON (CA.orgId = PW.orgId)
WHERE (P.Status = ?)
Run Code Online (Sandbox Code Playgroud)

DELETE FROM persons WHERE id = 1234
Run Code Online (Sandbox Code Playgroud)

sql-server deadlock parallelism transaction

1
推荐指数
1
解决办法
7710
查看次数