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

SQLAlchemy और जुड़ता है, हमारे पास कोई विदेशी कुंजी नहीं है

आपके पास दो विकल्प हैं। आप join . में शामिल होने की शर्त पास कर सकते हैं इस तरह:

j = join(users, comments, onclause=users.c.id == commends.c.user_id)

यदि आप इसे orm.relationship . के संदर्भ में परिभाषित कर रहे हैं संपत्ति, कीवर्ड पैरामीटर होगा primaryjoin onclause . के बजाय .

हालांकि, मैं जिस दृष्टिकोण को पसंद करता हूं वह सिर्फ झूठ . है . SQLAlchemy को सूचित करें कि एक विदेशी कुंजी है, भले ही नहीं है।

comments = Table('comments', metadata,
    Column('id', Integer, primary_key=True),
    Column('user_id', Integer, ForeignKey('users.id')),
    ...
)

SQLAlchemy आगे बढ़ेगा जैसे कि विदेशी कुंजी वास्तव में मौजूद थी, भले ही वास्तविक डेटाबेस में ऐसा न हो। निश्चित रूप से, यदि निहित विदेशी कुंजी बाधा का उल्लंघन किया जाता है, तो आप मुश्किल में पड़ सकते हैं (comments.user_id जब कोई संगत users.id न हो ), लेकिन फिर भी आप शायद मुश्किल में पड़ेंगे।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql के साथ अंतिम डाली गई आईडी पुनर्प्राप्त करें

  2. JDBC स्टेटमेंट उदाहरण - डालें, हटाएं, अपडेट करें, रिकॉर्ड चुनें

  3. संबंधपरक डीबी में वृक्ष संरचना को स्टोर करने के ज्ञात तरीके क्या हैं?

  4. MySQL गंभीर त्रुटि:विशेषाधिकार तालिकाओं को खोल और लॉक नहीं कर सकता:गलत फ़ाइल स्वरूप 'उपयोगकर्ता'

  5. डिफ़ॉल्ट मान के साथ एक नया SQL कॉलम जोड़ना