2013-05-04 1 views
4

나는 sqlite를 가르치는 것 뿐이므로 부모 항목을 삭제할 수있을 때 foreign_key 제약 조건이 작동하지 않는 것을보고 놀랐다. 나는 foreign_key에 대한 pragma가 기본적으로 각 세션마다 꺼져 있다는 것을 더 읽은 후에 배웠다. 예를 들어, vi와 같은 .exrc와 같은 리소스 파일이 없으면 각 세션마다 기본적으로 pragma를 설정할 수 있습니다. 그래서 sqlite3을 재 컴파일하거나 매번 설정해야합니다.sqlite3에서 foreign_key 무결성 검사가 있습니까?

어쨌든 부모님을 삭제 한 후에 외래 키 제약 조건에 대해 무결성 검사를 수행 할 수있는 방법이 있습니까? 나는. 그냥 삽입 또는 삭제 등의 시간에 pragma가 켜져있는 경우 sqlite가 원래 실행했을 때와 동일한 로직을 실행하도록 알려주십시오.

"pragma integrity_check"가 표시되지만 손상된 부분 만 찾고 있습니다.

감사합니다, 저스틴

+0

ooops! 나는 방금 여기 [link] (http://zetcode.com/db/sqlite/tool/)에서 .sqliterc을 배웠다. 집에 넣을 수있다. 그것이 내가 원했던 바로 그 것이다. 그냥 "pragma foreign_keys = on;"줄에 넣으십시오. 나는 모든 준비가되어있다. – Eradicatore

답변

0

다음 명령을 실행

PRAGMA foreign_keys; 

결과가 될 것입니다 :

0 // foreign keys Disabled 
1 // foreign keys Enabled 

사용 또는 외래 키를 실행하지 않으려면 :

PRAGMA foreign_keys = ON; 

또는

PRAGMA foreign_keys = OFF; 
,536,

자세한 정보 Here