테이블을 생성하는 과정에서 우리 시스템에 충분히주의를 기울이지 않았으며 모든 테이블이 InnoDB
엔진으로 생성되었습니다. 우리가 몇 개의 열에 FULLTEXT
색인을 갖고 싶어하기 때문에 이것은 실제로 나쁘다.외래 키가있는 테이블에서 MySQL 변경 엔진
이제 변환하고 싶습니다. 필자가이 작업을 수행하는 동안 모든 테이블을 MyISAM
으로 변환하여 앞으로 인덱스를 추가 할 열을 추가 할 경우 해당 옵션을 사용할 수 있습니다.
ALTER TABLE tableName1 Engine = MyISAM;
ALTER TABLE tableName2 Engine = MyISAM;
을 그러나, 나는, 나는 다음과 같은 오류 얻을 실행하려고 할 때 :
Error Code: 1217 Cannot delete or update a parent row: a foreign key constraint fails
당신이 짐작 했겠지만을, 우리가를 그래서 나는 다음 내 .SQL 파일을 가지고 우리 테이블의 외래 키. 내 스타일이 아니라 내 부서도 아니고 제 작성 스크립트도 아닙니다.
제 질문은 DB를 지우지 않고도이 테이블에서 엔진을 변경할 수 있습니까?
편집 :이 필요한 것으로 참고 데이터베이스의 여러 개발 및 테스트 사본에서 수행하는, 그래서 뭔가가 나는 스크립트는 확실히 선호 될 수있다.
이 응용 프로그램의 파괴없이 FKS를 제거 할 수 있습니까? 또는 전체 텍스트 인덱싱을 위해 Solr과 같은 것을 구현하십시오. – ceejayoz
@ceejayoz FK를 제거하는 것은 옵션이지만 많은 테이블을 가지고 있기 때문에 내가 원하는 것은 아닙니다. 각 테이블을 살펴보고 외래 키를 찾아 수동으로 삭제해야합니다. 그리고 이것은 여러 개의 dev 및 테스트 서버에 걸쳐있을 것입니다. 나는 그것을 할 필요없이 그것을 할 수있는 방법을 원합니다. 또한 Solr은 실제로 옵션이 아닙니다. – Ktash
단순한 해결책을 찾고 있다면 실망 할 것입니다. – ceejayoz