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

एक ही प्राथमिक कुंजी के लिए एक मैप किए गए वर्ग में SQLAlchemy एकाधिक विदेशी कुंजी

विदेशी_की से उद्धरण हटाने और उन्हें एक सूची बनाने का प्रयास किया। Relationship Configuration: Handling Multiple Join Paths . पर आधिकारिक दस्तावेज से

<ब्लॉकक्वॉट>

संस्करण 0.8 में बदला गया:relationship() foreign_keys . के आधार पर विदेशी प्रमुख लक्ष्यों के बीच अस्पष्टता को हल कर सकते हैं केवल तर्क; primaryjoin इस स्थिति में अब तर्क की आवश्यकता नहीं है।

नीचे दिया गया स्व-निहित कोड sqlalchemy>=0.9 . के साथ काम करता है :

from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.orm import relationship, scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine(u'sqlite:///:memory:', echo=True)
session = scoped_session(sessionmaker(bind=engine))
Base = declarative_base()

#The business case here is that a company can be a stakeholder in another company.
class Company(Base):
    __tablename__ = 'company'
    id = Column(Integer, primary_key=True)
    name = Column(String(50), nullable=False)

class Stakeholder(Base):
    __tablename__ = 'stakeholder'
    id = Column(Integer, primary_key=True)
    company_id = Column(Integer, ForeignKey('company.id'), nullable=False)
    stakeholder_id = Column(Integer, ForeignKey('company.id'), nullable=False)
    company = relationship("Company", foreign_keys=[company_id])
    stakeholder = relationship("Company", foreign_keys=[stakeholder_id])

Base.metadata.create_all(engine)

# simple query test
q1 = session.query(Company).all()
q2 = session.query(Stakeholder).all()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अद्यतन करने की आवश्यकता के बिना INSERT से ON CONFLICT के साथ पंक्तियाँ लौटाएँ

  2. मैं क्वेरी निष्पादन समय के psycopg2 लॉगिंग कैसे प्राप्त करूं?

  3. मैं एक स्ट्रिंग को पूर्णांक में कैसे डालूं और PostgreSQL के साथ कलाकारों में त्रुटि के मामले में 0 है?

  4. डेटाडम्प लोड करते समय Django प्रोजेक्ट को sqlite3 बैकएंड से postgresql में स्विच करना विफल हो जाता है

  5. JDBC बैच संचालन समझ