gpt4 book ai didi

SQL:更新时如何确定和跳过唯一约束?

转载 作者:行者123 更新时间:2023-12-04 23:43:50 26 4
gpt4 key购买 nike

我正在编写 SQL (Oracle) 以使用另一个表中的值更新一个表。但是由于有一个 2 列唯一约束,更新总是失败。它是这样的:

Table A
- A_1
- A_2
- A_3
(There is a unique constraint for A_1 + A_3 )

Table B
- B_1
- B_2

这是我当前的 sql:

UPDATE A a
SET a.A_1 =
(SELECT b.B_1
FROM B b
WHERE a.A_2 = b.B_2
)
AND EXISTS
(SELECT b.B_1
FROM B b
WHERE a.a.A_2 = b.B_2
)

我想跳过违反唯一约束的行,但我不知道该怎么做。请指教。谢谢!

最佳答案

您可以在末尾放置一个 AND NOT EXISTS,根据新值检查约束值(就像更新后一样):

...
AND NOT EXISTS
(
SELECT 1
FROM A checkA
WHERE checkA.A_1 = (SELECT b.B_1 FROM B b WHERE a.A_2 = b.B_2)
AND checkA.A_3 = a.A_3
)

关于SQL:更新时如何确定和跳过唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14486740/

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