다른 답변이 도움이되었지만 내 경험을 공유하고 싶었습니다.
id
다른 테이블에서 이미 외래 키 ( data 포함 ) 로 참조 된 테이블을 삭제하고 추가 열이있는 테이블을 다시 만들거나 가져 오려고 할 때 문제가 발생했습니다 .
레크리에이션에 대한 쿼리 (phpMyAdmin에서 생성)는 다음과 같습니다.
CREATE TABLE `the_table` (
`id` int(11) NOT NULL, /* No PRIMARY KEY index */
`name` varchar(255) NOT NULL,
`name_fa` varchar(255) NOT NULL,
`name_pa` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
... /* SOME DATA DUMP OPERATION */
ALTER TABLE `the_table`
ADD PRIMARY KEY (`id`), /* PRIMARY KEY INDEX */
ADD UNIQUE KEY `uk_acu_donor_name` (`name`);
알다시피, PRIMARY KEY
색인은 문제의 원인이 된 데이터를 생성 하고 삽입 한 후에 설정되었습니다 .
해결책
해결책은 외래 키로 참조되는 PRIMARY KEY
테이블 정의 쿼리에 대한 인덱스 를 추가하는 id
동시에 ALTER TABLE
인덱스가 설정된 부분에서 인덱스를 제거하는 것입니다.
CREATE TABLE `the_table` (
`id` int(11) NOT NULL PRIMARY KEY, /* <<== PRIMARY KEY INDEX ON CREATION */
`name` varchar(255) NOT NULL,
`name_fa` varchar(255) NOT NULL,
`name_pa` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
table2.IDFromTable1
과table1.ID
?