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

अपरकेस कॉलम नाम के साथ रेल का उपयोग कैसे करें?

यह एक ActiveRecord या AREL समस्या नहीं है, यह ठीक इसी तरह SQL और PostgreSQL में केस संवेदनशीलता काम करती है।

SQL में पहचानकर्ता (जैसे तालिका और स्तंभ नाम) केस-असंवेदनशील होते हैं जब तक कि उन्हें उद्धृत नहीं किया जाता है। मानक SQL का कहना है कि गैर-उद्धृत पहचानकर्ताओं को ऊपरी मामले में जोड़ दिया जाता है, PostgreSQL उन्हें निचले मामले में मोड़ देता है, इसलिए bar.maxusers त्रुटि संदेश में।

इसका समाधान आपत्तिजनक कॉलम के नाम को उद्धृत करना है:

.having('COUNT(foo.id) > bar."maxUsers"')

ध्यान दें कि आपको पहचानकर्ता को उद्धृत करने के लिए दोहरे उद्धरण चिह्नों का उपयोग करना चाहिए क्योंकि एकल उद्धरण केवल स्ट्रिंग अक्षर के लिए हैं। यह भी ध्यान दें कि पहचानकर्ता उद्धरण डेटाबेस-विशिष्ट है:मानक SQL और PostgreSQL दोहरे उद्धरण चिह्नों का उपयोग करते हैं, MySQL बैकटिक्स का उपयोग करता है, SQL सर्वर कोष्ठक का उपयोग करता है, ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql में एक कॉलम का उपयोग करके इसे क्लॉज द्वारा समूह में जोड़े बिना शामिल हों

  2. सिंक से बाहर होने पर पोस्टग्रेज के प्राथमिक कुंजी अनुक्रम को कैसे रीसेट करें?

  3. Yii2:मल्टीपल डेटाबेस स्कीमा कैसे निर्दिष्ट करें?

  4. Postgresql:डेटाबेस ट्रिगर में सिंगल कोट्स से कैसे बचें?

  5. INITCAP () - PostgreSQL में प्रारंभिक कैप्स में कनवर्ट करें