PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

अद्यतन का FROM पक्ष अद्यतन के लिए लक्षित तालिका से कैसे संबंधित है?

UPDATE आपके द्वारा प्रदर्शित क्वेरी बिल्कुल वैसी ही है:

UPDATE fromemailaddress f
SET    call = true 
FROM  (
   SELECT fromemailaddress
   FROM   email 
   WHERE  subject ILIKE '%tester%'
   ) e
WHERE  e.fromemailaddress = f.fromemailaddress;

subject ILIKE '%tester%' subject ~ 'tester' . के लिए एक तेज़ समकक्ष है . LIKE . के लिए विवरण , ILIKE और रेगुलर एक्सप्रेशन मिलान (~ ) मैनुअल में या dba.SE पर इस संबंधित उत्तर में:

और प्रभावी ढंग से वही:

UPDATE fromemailaddress f
SET    call = true
WHERE  EXISTS (
   SELECT 1
   FROM   email e
   WHERE  e.fromemailaddress = f.fromemailaddress
   AND    e.subject ILIKE '%tester%'
   );

इसके बजाय इसका इस्तेमाल करें।

यदि तालिका में एक से अधिक पंक्तियाँ होनी चाहिए email उसी के साथ fromemailaddress fromemailaddress . में एक पंक्ति का मिलान करना , तो यह फ़ॉर्म केवल एक निष्पादित करता है आपके दुर्भाग्यपूर्ण मूल के विपरीत, प्रति पंक्ति अपडेट करें।

इस तथ्य से भ्रमित न हों कि fromemailaddress यहां कॉलम और टेबल नाम के रूप में प्रयोग किया जाता है।

मैनुअल को ध्यान से पढ़ें यहां और यहां . विशेष रूप से यह बिट:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इसके कारण:org.postgresql.util.PSQLException:FATAL:शेष कनेक्शन स्लॉट गैर-प्रतिकृति सुपरयुसर कनेक्शन के लिए आरक्षित हैं

  2. स्प्रिंग बूट पर हाइबरनेट के साथ PostGIS ज्यामिति बिंदु फ़ील्ड को मैप करें

  3. SQLAlchemy:जांचें कि क्या दिया गया मान किसी सूची में है

  4. Postgres . में LIKE और ~ के बीच अंतर

  5. क्या मैं pg_restore कमांड को निष्पादित करते समय db को छोड़ और बना सकता हूँ?