UPDATE
पहले सीटीई में updated
कोई पंक्ति नहीं produces उत्पन्न करता है . इसका मतलब है कि, आपको NULL
नहीं मिलता है updated.id
. के लिए मान या। updated
में शामिल होने पर , आपको कुछ नहीं मिलता है , इसलिए नहीं INSERT
या तो होता है।
NOT EXISTS
. के साथ काम करना चाहिए :
WITH updated AS (
UPDATE vote_user_table v
SET positive = TRUE -- use booleann values ..
,negative = FALSE -- .. instead of quoted string literals
FROM usuario u
WHERE v.review_id = 6 -- guessing origin
AND v.user_id = u.id
AND u.username ILIKE '[email protected]'
RETURNING v.id
)
INSERT INTO vote_user_table (review_id, user_id, positive, negative)
SELECT 6, u.id, TRUE, FALSE
FROM usuario u
WHERE NOT EXISTS (SELECT 1 FROM updated)
AND u.username ILIKE '[email protected]';
ध्यान रखें कि दौड़ की स्थिति . के लिए अभी भी बहुत कम मौका है भारी समवर्ती भार के तहत। इस संबंधित प्रश्न के अंतर्गत विवरण:
एक लेन-देन के साथ अप्सर्ट करें