나는 관계를 가지고있다 - PK 자식 테이블의 외래 키 제약 조건에 부모 테이블에 아직 기본 키로 생성되지 않은 값을 삽입 할 수 있습니까?
- 연락받은 편지함을 를 채우는 데 사용
한 기업에게 많은 메시지를 보낸 수, 즉/ 를 수신 한 메시지는 하나의 접촉 012에서 많은 연락처로 보냈지 만 수신 할 수있다
BUT 데이터베이스의 연락처 테이블에없는 알 수없는 번호와 메시지를주고받을 가능성이 있습니다.
관계가 많으므로 ContactMessage 테이블에 알 수없는 숫자를 추가해야 쿼리 할 수 있습니다. 그 contactNumber이 연락 발견되지 않기 때문에
내가 무엇을 찾고 있어요 것은 단지 Contact_Message 테이블 하지만 SQLite는 DB 엔진에 (같이받은 편지함에 표시)를 contactNumber을 추가하는 오류 가 외래 키 제약 조건이 실패 발생 표.
.... 또한
: 내 우려를 설명하는, 내가 원하는 :
- contactNumber는 여부를 테이블에 관계없이 의 contact_m2m_message에 INSERT에 contactNumber입니다 존재하지 않는다 테이블 또는 아니요
- 연락처가 삭제 된 경우 의 관련 행/초 contact_m2m_message은 삭제하면 안됩니다. 관련 contactNumber 및 는 행
- 메시지가 삭제 된 경우, 해당 행/S가 contact_m2m_message
에서 삭제해야를 지속해야 messageID 설명.
이 문제에 대한 해결책은 있습니까? . 당신이 해당 연락없이 Contact_Message 관계를 가질 수있는 요구 사항이
CREATE TABLE contact ( contactNumber Numeric PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, contactName TEXT NOT NULL ); CREATE TABLE message ( msgID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE, messageContent TEXT NOT NULL ); CREATE TABLE contact_m2m_message ( contactNumber NUMERIC NOT NULL REFERENCES contact (contactNumber) ON DELETE NO ACTION ON UPDATE CASCADE, messageID INTEGER NOT NULL REFERENCES message (msgID) ON DELETE CASCADE ON UPDATE CASCADE );