2013-08-30 1 views
0

내가 이전에 작성한 데이터베이스 테이블을 복원하려고 할 때 사용자 외래 키를 작성하지 않았다. 외래 키에 해당하는 필드가 있지만 테이블에 연결된 관계 테이블에서 설정하지 않았습니다.외래 키 구현 mysql 테이블

오른쪽에 다른 테이블에서 삭제 된 행이 있기 때문에 내가 그 관계를 추가하려고하면 문제가 생길 수 있습니다.

이 유형의 NULL 관계를 검사하여 필요없는 행을 삭제하는 mysql 명령이 있습니까? 결국에는 관계를 추가하십시오.

 
TableA 
    id, 
    name 

TableB 
    id, 
    tableA_id, 
    points 

일부 TableA 행을 삭제했습니다. 이제는 그 관계를 가질 수 없습니다.

mysql 명령을 사용하여 도움이 필요하거나 수동으로 확인해야합니까?

감사 최소한 TableA.id에 당신이 여기

-- Delete all orphaned records from TableB 
DELETE b 
    FROM tableb b LEFT JOIN tablea a 
    ON b.a_id = a.id 
WHERE a.id IS NULL; 
-- Create a FK constraint 
ALTER TABLE TableB 
ADD CONSTRAINT fk_a_id FOREIGN KEY (a_id) REFERENCES tablea(id); 

을 시도 할 수 PRIMARY KEY 제약 조건이 있다고 가정

답변