안녕하세요? REDHAT9에다가 MySQL을 사용하고 있는 초보자입니다.
처음 만들어 보는 FOREIGN KEY 지정에 문제가 생겨서 어렵게어렵게 테이블을 만들었는데,
1 : 1 matching 상황이 아니라 FOREIGN KEY 속성을 없애야 할 것 같습니다.
어떻게 해야 하는 건지 어떤 차례로 해야 하는 건지 알려 주시겠습니까?
제 상황을 설명드리면,
#/home/a라는사용자/A.sql 로 테이블을 만드는 내용을 저장한 후
#/home/a라는사용자/mysql -u root -p DATABASE명 < A.sql 해서 테이블을 MySQL에다 만들고
MySQL의 data directory인 ~/mysql/var에다가
DATA LOAD할 A.txt를 저장시키고
/home/a라는사용자/mysql -u root -p 실행후
mysql>LOAD DATA INFILE './A.txt' INTO TABLE A(테이블명); 하니
1:1 matching상황이 아니라 에러가 났습니다.
그래서 ALTER TABLE A(테이블명) DROP INDEX column명(index, foreign key설정된); 하니
ERROR 1025: Error on rename of './DATABASE명/#sql-d45_9' to './DATABASE명/A(테이블명)' (errno: 150)
mysql>DROP TABLE A(테이블명);
ERROR 1217: Cannot delete or update a parent row: a foreign key constraint fails
당연히 안 되겠죠?
참, 전 mysql 데몬을 mysql이라는 사용자가 돌리도록 해 두었습니다.(여기서의 a라는 사용자와 다름)
아직까지 초보라서 그런지 OS상에서랑 MySQL상에서랑 사용자, 권한, 그리고 설계상의 문제(서로 연관된 것) 등으로 인한 에러가 나면, 해결하기가 쉽지가 않습니다.
여기저기 찾아봐도 아직까지 제 실력으로는 산 너머 산이네요.
잘못 설정된 foreign key:index속성을 없애고 싶습니다. 단계별로 알려 주시면 감사하겠습니다.
쉽게 알고싶지 않은 마음에 고민 후,
고수님들의 도움 부탁드립니다.
감사합니다.
|