1
외래 키 제약 조건에 어려움이 있습니다. 나는 세 개의 테이블이 있습니다Mysql 매핑 테이블 FK 제약
Features
ID PK AUTO_INC
Title VARCHAR
Subscriptions
ID PK AUTO_INC
Title VARCHAR
Subscriptionfeatures
ID PK AUTO_INC
feature_id INT (index)
subscription_id INT (index)
나는 다음과 같은 기록이있을 때
Features
1 Testfeature
Subscriptions
1 Testsubscription
ALTER TABLE subscriptionfeatures ADD CONSTRAINT FK_feature FOREIGN KEY (feature_id) REFERENCES features(id);
Subscriptionfeatures
x 1 1 => ok
하지만 내가 할 수있는을 다음과 같이 FK 제약 조건을 정의 할 때
나는 Subscriptionfeatures에서 다음 레코드를 삽입 할 수 있습니다 ON DELETE CASCADE 절을 FK 제약 조건에 추가 할 때 동일한 레코드를 삽입하지 마십시오. 그러나 거부 이유를 이해할 수 없습니다.
ALTER TABLE subscriptionfeatures ADD CONSTRAINT FK_feature FOREIGN KEY (feature_id) REFERENCES features(id) ON DELETE CASCADE;
Subscriptionfeatures
x 1 1 => fails
이 문제에 대한 도움을 주시면 대단히 감사하겠습니다.
내 쿼리를 살펴보면 먼저 값을 추가 한 다음 제한 조건을 생성 한 것을 볼 수 있습니다. 이는 데이터가 존재했음을 의미합니다. 실패한 전체 명령 순서와 정확한 오류 설명을 게시 할 수 있습니까? – Quassnoi
나는 그것을 간과했다. 좀 더 테스트를 했어. 결국 그것은 내 자신의 어리석은 실수 인 것 같다! Emma를 사용하여 레코드를 삽입하고 새 행에 마지막 ID를 삽입 한 후 Enter 키를 누르지 않았으므로 값을 제출할 때 SQL 쿼리에 설정되지 않았습니다. 귀하의 도움에 감사드립니다! –