SQL ForeignKey Mismatch
테이블 A
에서 ForeignKey
로 타 테이블 B
의 column
C
를 가리키려 했더니 ForeignKey Mismatch
가 뜨는 이유는:
B
란 테이블이 없거나B
란 테이블은 있는데C
란column
이 없거나Column
C
가unique
한column
이 아니거나(ForeignKey
는unique
한column
만 가리킴. 똑같은 게 여럿이면 어떤row
를 가리켜야 할지 모르니까)- 다음 조건 2개 중 하나라도 만족 못 해서다.
primary key
라 명시를 하지 않고primary key
를 가리키는 경우(?)- 테이블
B
가primary key
가 2개면 그 2개를 다 가리켜줘야 하는데 하나만 가리킨 경우
출처: https://stackoverflow.com/questions/5208245/what-is-causing-foreign-key-mismatch-error
SQLAlchemy
에서 ForeignKey
로 2개 이상을 가리키는 법:
class Author(Base):
__tablename__ = 'authors'
firstName = Column(String(20), primary_key=True)
lastName = Column(String(20), primary_key=True)
books = relationship('Book', backref='author')
class Book(Base):
__tablename__ = 'books'
title = Column(String(20), primary_key=True)
author_firstName = Column(String(20))
author_lastName = Column(String(20))
__table_args__ = (
ForeignKeyConstraint([author_firstName, author_lastName],
[Author.firstName, Author.lastName]),)
ForeignKeyConstraint
를 써야만 칼럼 2개 이상을 같이 가리킬 수 있다.
출처: https://stackoverflow.com/questions/7504753/relations-on-composite-keys-using-sqlalchemy
Author And Source
이 문제에 관하여(SQL ForeignKey Mismatch), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@trulybright/SQL-ForeignKey-Mismatch저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)