테이블 세트를 가진 mysql 데이터베이스가있다. 하나의 테이블은 기본 키와 단일 외래 키로 복합 키를 가지고있다. 다음은 테이블 정의입니다.mysql에서 외래 키 제약을 가진 테이블 기본 키 변경하기
CREATE TABLE IF NOT EXISTS `ohrm_emp_education` (
`emp_number` int(11) NOT NULL,
`education_id` int(11) NOT NULL,
`institute` varchar(100) DEFAULT NULL,
`major` varchar(100) DEFAULT NULL,
`year` decimal(4,0) DEFAULT NULL,
`score` varchar(25) DEFAULT NULL,
`start_date` date DEFAULT NULL,
`end_date` date DEFAULT NULL,
PRIMARY KEY (`emp_number`,`education_id`),
KEY `education_id` (`education_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `ohrm_emp_education`
ADD CONSTRAINT `ohrm_emp_education_ibfk_1` FOREIGN KEY (`emp_number`) REFERENCES `hs_hr_employee` (`emp_number`) ON DELETE CASCADE,
ADD CONSTRAINT `ohrm_emp_education_ibfk_2` FOREIGN KEY (`education_id`) REFERENCES `ohrm_education` (`id`) ON DELETE CASCADE;
하지만 이제 기존 테이블에 새 열을 추가하고이를 기본 키로 지정해야합니다. 나는 다음과 같은 쿼리를 시도했다.
ALTER TABLE ohrm_emp_education
ADD column id int not null AUTO_INCREMENT,
DROP PRIMARY KEY,
ADD primary key (id)
하지만 내가 인터넷에서 찾을 수 있지만, 제대로 해결되지 수있는 몇 가지 답변을 시도 오류
#1025 - Error on rename of './test/#sql-4f6_19b' to './test/ohrm_emp_education' (errno: 150)
을 다음 보여줍니다. 누군가가 나를 도울 수 있습니까? 미리 감사드립니다.
ALTER TABLE `ohrm_emp_education` DROP FOREIGN KEY `emp_number`;
ALTER TABLE `ohrm_emp_education` DROP FOREIGN KEY `education_id`;
을 그리고 테이블을 변경 :
그것은 저와 함께했습니다. 도와 주셔서 감사합니다. – Thilanka