sql >> データベース >  >> RDS >> Mysql

SQLAlchemyと結合、外部キーはありません

    2つのオプションがあります。 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. MySQLサーバーは--secure-file-privオプションで実行されているため、Macでこのステートメントを実行できません。

    2. SQL Serverトリガー:DMLトリガー

    3. MySQL –接続エラー– [MySQL] [ODBC 5.3(w)ドライバー]ホスト「IP」はこのMySQLサーバーへの接続を許可されていません

    4. PostgreSQL-データベースの名前を変更